Joel Piroe scored his 18th goal of the season in all competitions as Swansea secured a 1-0 win against Millwall at The Den.
Neither side could find the back of the net in the opening 45 minutes, but the game did not remain goalless for long after half-time, as Piroe opened the scoring in the 46th minute.
The result means Millwall remain in 10th and lose ground in the race for the play-offs, while Swansea move up to 14th.
Millwall pressed Swansea aggressively during the opening stages, but against the run of play, the visitors had the first clear shot on goal.
Michael Obafemi was put through one-on-one with Millwall keeper Bartosz Bialkowski, but he failed to keep his shot on target.
Benik Afobe capped an electric opening five minutes with a low left-footed shot across goal, but it was deflected behind for a corner that eventually came to nothing.
Obafemi came close again in the 10th minute after a beautiful outswinging cross from Hannes Wolf on the left flank found him open in the box, but the forward was denied by an excellent save from Bialkowski.
The Poland international made another impressive stop from Jay Fulton’s driven shot from distance, tipping the effort around his right post.
After judging that the ball did not strike Swansea defender Ben Cabango’s hand, Andy Davies turned away appeals for a Millwall penalty, much to the delight of the travelling fans.
Jed Wallace had Millwall’s best chance of the half when he picked up the ball on the edge of the box before firing a right-footed shot just wide of Andy Fisher’s goal.
Immediately after the break, the ball fell to Swansea’s top scorer Piroe on the edge of the penalty area before he whipped the ball past the helpless Bialkowski and into the bottom right corner of the net.
But Gary Rowett’s side did not give in, and they nearly equalised when Danny McNamara headed a cross back across goal.
However, George Saville’s scissor kick sailed over the bar.
Just a minute later, Afobe worked hard to get across his defender at the front post, only to see his shot strike the advertising boards.
McNamara had a shot on goal of his own with 22 minutes of normal time remaining, but the City keeper got down quickly to tame his powerful effort.
The superb Obafemi could have wrapped things up for his side, but he saw his effort go just over the crossbar.
The Lions had a great chance to snatch a draw at the death, but Afobe fired the ball over the crossbar from a corner, and the game finished 1-0.