Lee Gregory ended a five game drought with a goal in either half as Millwall recorded a comfortable Boxing Day victory against struggling Swindon at The Den.
Gregory's finishes - on 10 and 65 minutes - were enough to secure back-to-back home wins and keep Neil Harris' charges within three points of the Play-Offs.
Lions boss Harris stuck to the same starting XI that had so comfortably seen off Charlton last time out, and after a couple of deliveries early on from Ben Thompson and Shaun Williams that tested the visitors' rearguard, the Swindon defence was penetrated after 10 minutes.
A deep free-kick from Jordan Archer was worked into the path of Gregory by Fred Onyedinma and Steve Morison, and in one swift movement the striker spun and arrowed a low drive into the bottom left corner beyond the reach of keeper Lawrence Vigouroux.
Michael Doughty tried to muster an immediate reply for the visitors, only to blast a 25-yarder as high over the bar as it was wide of it.
Aiden O'Brien did well to intercept a weak back-pass on 17 minutes, but couldn't quite control the ball and the half-chance was lost as Millwall began to press for a second goal.
Steve Morison had a great chance to make it 2-0 when he found himself in space, but perhaps half expecting the offside flag to be raised, tried to chip Vigouroux instead of taking the ball forward and his effort was comfortably claimed by the keeper.
Gregory fired over after being set up by Shaun Cummings and Byron Webster before the hard-working frontman did well to earn a corner with some close ball control and persistence on the half-hour mark. From Williams' resulting delivery Shaun Hutchinson's powerful header looped over everyone until an outstretched boot hooked the ball off the line to deny Millwall a second goal.
The Lions went close again when an intricate move down the right saw the ball eventually worked to Onyedinma following a succession of one-touch passes. The winger's sumptuous delivery was met by O'Brien, who just couldn't get enough purchase on a diving header to direct his effort towards goal.
Gregory was put through by a super Morison pass but just couldn't get a shot in before returning the favour for O'Brien, who this time curled a low effort straight into Vigouroux's hands.
Millwall went in 1-0 ahead at the break knowing that they should have had more to show for a dominant first-half display, but comfortable nonetheless against a Swindon side that had really struggled to make much of an impression.
Whatever was said at half-time by The Robins' management team certainly had the desired effect and the visitors looked a totally different proposition, forcing a couple of corners and drawing rash challenges too, from Webster and Craig, that earned the Millwall defensive duo bookings within 12 minutes of the restart.
Luke Norris spurned a gilt-edged opportunity to level on the hour mark when he slipped behind the back line and with the goal at his mercy, inexplicably drilled wide of the target from eight yards.
It was a huge let-off for The Lions and within 60 seconds Swindon enjoyed a large chunk of luck too, this time when an unmarked Morison powered a header from Williams' corner narrowly over.
There was nothing lucky about Millwall's second goal, which duly arrived in the 65th-minute. Some intelligent link play between Onyedinma and Morison sliced open the Swindon defence and from Morison's delightful flighted cross, there was Gregory to smash an unstoppable volley into the roof of the net.
A rampaging run by Ben Thompson was brought to an abrupt halt by a near rugby-tackle from Darnell Furlong, who became the third player to be booked in a feisty three minute spell that also saw yellow cards brandished to Gregory and Yaser Kasim.
Hutchinson was denied his first goal in a Millwall shirt as the game entered the final 10 minutes with Vigouroux stretching to claw away the defender's goal-bound header from another Williams' corner and Onyedinma hit the woodwork late on, but despite piling on the pressure, The Lions were unable to add to their tally.
Archer, Cummings, Hutchinson, Craig, Williams, Thompson, Gregory (Worrall, 84mins), Onyedinma, Webster, Morison (Ferguson, 71mins), O'Brien (Butcher, 90+2mins). Subs not used: King, Romeo, Abdou, Smiith.
Webster, Craig, Gregory
Gregory (10, 65mins)
Vigouroux, Thompson, Doughty, Kasim, Smith (Goddard, 54mins), Furlong, Murray, Hylton, Jones, Rossi-Branco, Norris. Subs not used: Henry, Thomas, Rodgers, Evans, Delfouneso, Barry.
Furlong, Smith, Kassim
8,515 (away 287)