Preston North End were beaten by Millwall at The Den in their opening game of the season.
Jed Wallace's 33rd minute goal settled the contest, the Lions winger meeting a cross from Connor Mahoney to volley home from eight yards, Declan Rudd getting a glove to the ball but unable to keep it out.
North End's best chance of the game had fallen to Alan Browne early on, his powerful first-time drive from 20 yards on its way until Matt Smith headed it clear two yards from goal.
Chasing the game Alex Neil's men toiled in terms of creating chances, with neither of the two goalkeepers Millwall used - Frank Fielding went off injured to be replaced by Bartosz Bialkowski - having a shot to save.
Neil chopped and changed approach, bringing on Andre Green for his debut later in the game, but the visitors couldn't find a way through a stubborn and well drilled home defence.
North End had tweaked formation from pre-season, lining-up in more of a 4-1-4-1 than the 4-2-3-1 system they had generally used.
Paul Gallagher operated on the left, Tom Barkhuizen on the right-wing, with Brad Potts and Browne central behind Sean Maguire.
There seemed to be an emphasis on their play to switch the play across pitch, several times Gallagher getting possession and looking to find Barkhuizen in space with a crossfield ball.
Millwall threatened early, Wallace's shot from 20 yards finger-tipped over the bar by Rudd - a Shaun Williams corner from the left having been cleared as far as him.
PNE went close in the ninth minute, a half-cleared corner at the other end falling to Browne whose stinging first-time was goalbound until Smith headed clear from inside the six-yard box.
Tom Clarke got on the end of Gallagher's deep free-kick beyond the far post, his header hitting a defender and bouncing back off him before going behind - the skipper falling over the advertising boards in the scramble.
Andrew Hughes made a fine clearance in the 25th minute, the Preston left-back hooking a Mahoney cross away under pressure when facing his own goal.
After surviving a penalty shout against them - more from the crowd than on the pitch - North End counter-attacked on Millwall with Maguire getting ahead of the home defence on the half-way line.
The Irishman reached the box but hesitated in pulling the trigger, seemingly caught in two minds as to whether shoot or square it. That moment of hesitation allowed a home defender to get back and tackle.
Millwall went in front in the 33rd minute, Mahoney curling in a low bouncing cross from the left-wing which Wallace met on the volley from eight yards. Rudd got gloves to the ball but couldn't prevent it going in.
Before the interval, Hughes' driven cross was met by Maguire who headed wide, the striker later sending a shot just wide of the far post after cutting inside from the left.
In between those two chances, Millwall lost goalkeeper Fielding to a back injury, Bialkowski replacing him.
Hughes was booked three minutes into the second half for bringing down Wallace and was fortunate not to get a second yellow soon after for clipping Mahlon Romeo - referee Stephen Martin felt a free-kick sufficed.
Alex Neil saw fit to change things in the 55th minute, bringing on Jayden Stockley and Billy Bodin for Potts and Barkhuizen - Stockley's arrival seeing Maguire move to the left-wing.
With that having little effect Green was introduced for his debut with 16 minutes remaining, taking Gallagher's place.
The Aston Villa loanee took up a position on the left, Maguire moving inside to play off Stockley - Browne dropping deeper with Pearson.
Late on Maguire went tumbling under a challenge in the six-yard but Mr Martin waved play-off.
Millwall: Fielding (Bialkowski 43), Romeo, Pearce, Cooper, M Wallace, J Wallace, Thompson, Williams, Mahoney, O'Brien (Leonard 69), Smith (Bradshaw 77). Subs (not used): Hutchinson, Ferguson, Bodvarsson, Skalak.
PNE: Rudd, Clarke, Bauer, Davies, Hughes, Pearson, Gallagher (Green 74), Potts (Bodin 55), Browne, Barkhuizen (Stockley 55), Maguire. Subs (not used): Fisher, Johnson, Storey, Ripley.
Referee: Stephen Martin (Staffordshire)
Attendance: 14,923 (1,232 PNE)