Match ends, Millwall 0, Swansea City 3.
Swansea ended a run of four successive defeats with a 3-0 win at Millwall to boost their promotion aspirations.
Andre Ayew curled home an opener in first-half stoppage time as the Swans scored their first goal in five games.
Jamal Lowe struck a second with 15 minutes remaining to cap a fine counter and ease Swansea nerves, before adding his second with a smart finish.
Jake Cooper's header against the post had almost levelled for Millwall at the start of the second half.
The players wore black armbands and there was a minute's silence before the game for Prince Philip, the Duke of Edinburgh, who died at the age of 99 on Friday.
Millwall, looking for a fourth straight win, could have taken the lead as early as the fourth minute when Billy Mitchell's effort was deflected just inches wide of the post, while Jed Wallace forced Freddie Woodman to save.
Lowe cut inside from the left and shot at goal, but Bartosz Bialkowski denied him with a good save as Swansea enjoyed the bulk of possession in the first half.
Chances were at a premium at both ends with just three shots on target in the opening 45 minutes.
However, Ayew's sweet strike in first-half stoppage time from the edge of the area gave Swansea the advantage at the break.
The Lions could have equalised within 90 seconds of the restart, but Cooper's header struck the base of the visitors' post.
Swansea did not look to settle for a 1-0 lead and almost went two in front when Wayne Routledge's effort was saved by Bialkowski, while Ryan Manning saw a penalty appeal turned down.
Swansea nerves were eased when Lowe capped a fine counter-attack to score with 15 minutes remaining.
Wallace shot wide and sub Kenneth Zohore forced Woodman to make a fine save as Millwall looked for a goal, but a much-improved Swansea struck again on 84 minutes when Ayew fed Lowe who turned and hammered the ball into the roof of the net.
Millwall manager Gary Rowett said:
"I'm disappointed, I thought there were moments in the game we needed to make go our way, they went the other way.
"I don't think we played well enough. I didn't think we asked quite enough questions in the final third of Swansea.
"What I would also say is we have to defend better for all three goals, we deservedly lost the game."
Swansea head coach Steve Cooper said:
"First and foremost we needed the win, there was no doubt about that.
"But to do it in our way and our style away from home at a place like this, it just all adds up to a really positive day.
"We were a good version of ourselves today."
- 3M Wallace
- 15PearceSubstituted forZohoreat 62'minutes
- 23McNamaraSubstituted forRomeoat 62'minutes
- 16KieftenbeldSubstituted forMahoneyat 62'minutes
- 24MitchellSubstituted forWilliamsat 78'minutes
- 7J Wallace
- 20BennettSubstituted forBödvarssonat 78'minutes
- 10A AyewSubstituted forWhittakerat 90+3'minutes
- 15RoutledgeSubstituted forRobertsat 77'minutes
- 9LoweSubstituted forCooperat 90+2'minutes
- Robert Jones
- Shots on Target
Second Half ends, Millwall 0, Swansea City 3.
Substitution, Swansea City. Morgan Whittaker replaces André Ayew.
Substitution, Swansea City. Oliver Cooper replaces Jamal Lowe.
Jay Fulton (Swansea City) wins a free kick on the right wing.
Foul by George Evans (Millwall).
Attempt missed. Jón Dadi Bödvarsson (Millwall) header from the centre of the box misses to the left.
Attempt missed. Shaun Williams (Millwall) right footed shot from outside the box is high and wide to the right. Assisted by George Evans.
Goal! Millwall 0, Swansea City 3. Jamal Lowe (Swansea City) right footed shot from the centre of the box to the top right corner. Assisted by André Ayew.
Attempt blocked. Kenneth Zohore (Millwall) right footed shot from the left side of the box is blocked. Assisted by George Evans.
Corner, Millwall. Conceded by Freddie Woodman.
Attempt saved. Kenneth Zohore (Millwall) left footed shot from the left side of the box is saved in the centre of the goal.
Attempt blocked. Scott Malone (Millwall) left footed shot from the centre of the box is blocked. Assisted by George Evans.
Foul by Jamal Lowe (Swansea City).
Mahlon Romeo (Millwall) wins a free kick in the defensive half.
Substitution, Millwall. Jón Dadi Bödvarsson replaces Mason Bennett.
Substitution, Millwall. Shaun Williams replaces Billy Mitchell.
Substitution, Swansea City. Connor Roberts replaces Wayne Routledge.
Goal! Millwall 0, Swansea City 2. Jamal Lowe (Swansea City) right footed shot from the centre of the box to the bottom right corner following a fast break.
Jamal Lowe (Swansea City) wins a free kick in the defensive half.