Swansea City returned to winning ways in emphatic fashion as goals from Andre Ayew and Jamal Lowe sealed a dominant victory at Millwall.
Steve Cooper’s side had entered the game on the back of a run of four straight defeats without scoring but, once they settled into this contest, that run always looked like coming to an end.
They took the lead right on half-time as Ayew superbly curled home his 15th goal of the season from just inside the area.
And Lowe then netted his 10th goal of the campaign with a sweet finish after running on to a pass from the excellent Wayne Routledge, who showcased all his skill and nous in his first league start of the current term.
That ended Lowe's wait for a goal, and another was not long in coming as he rifled the ball into the top corner with five minutes to go.
The result leaves the Swans fourth in the table, 10 points behind second-placed Watford with a game in hand, and six points clear of seventh place Reading. It also took them past their points tally from last season with six games still to play.
And it serves as a timely boost ahead of the midweek trip to Sheffield Wednesday after bossing possession and showing a cutting edge to go with a 19th clean sheet.
Cooper had made three changes to his line-up, with Kyle Naughton, Ryan Bennett and Routledge coming into the side and Connor Roberts, Ben Cabango and Morgan Whittaker dropping to the bench.
For Routledge it was a first league start of the season, and a first in any competition since the FA Cup win over Nottingham Forest in January.
There was an early scare for the visitors as Billy Mitchell’s deflected shot bounced just wide of the post with Freddie Woodman stranded, before Jake Cooper headed the resulting corner off target.
Woodman then saved from Mason Bennett after Cooper had flicked on a long throw from George Evans.
Swansea began to grow into the game and a lovely period of play ended with Lowe being sent clear down the left, but his final ball was behind Ayew and Routledge.
Lowe then fired straight at Bartosz Bialkowski from a clever Routledge lay-off, but the flag was up for offside anyway.
The visitors were certainly enjoying the greater share of the ball and were showing some fluency in their movement as the half-hour mark approached.
Lowe was in the thick of the action, and Bialkowski had to deny the forward again as his speed got him clear of two Millwall defenders.
But the Swans finally got their reward in first-half stoppage time through Ayew.
Routledge cleverly flicked the ball to Jay Fulton and it was moved swiftly right to the Ghanaian, who stepped back inside onto his left foot and curled the ball into the far corner to give the visitors the interval lead.
However, Millwall nearly levelled within a minute of the restart, with Cooper’s header coming back off the post and Fulton battling to clear.
But the Swans were soon back on the front foot, and Bialkowski pushed away a Routledge strike after more slick build-up play.
Fulton volleyed over from the resulting corner after it was half-cleared, and the question for the Swans was whether they could take another opportunity and create some breathing space.
The momentum was with the visitors and Swansea had a strong penalty appeal waved away when Murray Wallace kicked Ryan Manning as the left-back came from his blindside to run onto a ball in the box.
But Lowe made sure that did not matter as he wrapped up the victory with 15 minutes to go.
Routledge showed great awareness to set the Jamaica international running free, and he drove across the defence before firing past Bialkowski into the bottom corner.
And he completed his brace after another lovely flowing move ended with Lowe smashing into the top corner with aplomb.
Millwall: Bartosz Bialkowski, Murray Wallace, Alex Pearce (captain) (Kenneth Zohore 62), Jake Cooper; Dan McNamara (Mahlon Romeo 62), Billy Mitchell (Shaun Williams 78), Maikel Kieftenbeld (Connor Mahoney 62), George Evans, Scott Malone; Mason Bennett (Jon Dadi Bodvarsson 78), Jed Wallace.
Unused Substitutes: Frank Fielding, Shane Ferguson, Ryan Woods, Tom Bradshaw.
Swansea City: Freddie Woodman; Kyle Naughton, Ryan Bennett, Marc Guehi, Ryan Manning; Jay Fulton, Matt Grimes (captain), Conor Hourihane; Wayne Routledge (Connor Roberts 78), Andre Ayew (Ollie Cooper 90+2), Jamal Lowe (Morgan Whittaker 90+2).
Unused Substitutes: Ben Hamer, Korey Smith, Yan Dhanda, Joel Latibeaudiere, Jake Bidwell, Ben Cabango.
Referee: Robert Jones..