In spite of a fighting performance, Nottingham Forest's play-off hopes were cut short for the second year running.
It was a fast paced first half with both sides creating chances, but it was the home side that made it pay, scoring twice within five minutes and taking some of the steam out of Forest's attack.
Both sides had chances in the second half without finding the goalmouth, but Forest's final substitution paid off immediately when Robert Earnshaw got a goal back to put the home side under pressure.
But a stoppage time third goal for Swansea finally put the game out of Forest's reach.
Swansea were the first side to threaten, less than three minutes into the half, when Nathan Dyer's shot was blocked by Wes Morgan
and when the ball came back out Fabio Borini his effort was blocked by Luke Chambers
A superb counter attack by Forest saw them come close to taking an early lead. Nathan Tyson
made a fabulous run and held the ball up to cross for David McGoldrick
as he arrived in the box and although his effort was good, the ball rose up to hit the post.
Swansea missed a chance when Scott Sinclair fizzed the ball across the face of goal, but there was nobody there to get on the end of it.
A great free kick in by Lewis McGugan
created a chance for Forest. McGoldrick got his head to it but it was straight to the feet of Dorus De Vries.
And the end to end football continued when Angel Rangel made a break into the box, chipping the ball towards goal, but it went out the other side.
It was Swansea's turn to hit the crossbar when Borini, under pressure from Wes Morgan
, picked up the cross from Leon Britton and blasted the ball off the bar.
It was Swansea that scored first with a superb strike from Britton who got away from Tudgay on the far corner of the box and smashed the ball into the top corner, leaving Lee Camp
And it was just five minutes later when they got the second, when Stephen Dobbie got away from two Forest players to work his way across the box and hit the ball, from inside the D, low past Camp and into the far corner of the net.
A good break from midfield by Sinclair, just before half time, threatened a third but Borini's effort was well saved by Camp.
Forest squandered a chance to get a goal back early in the second half with another great run by Tyson down the left to get on the end of the ball. He pulled it back to Marcus Tudgay as he ran into the box but he sent the ball flying high over the bar.
Forest had another chance with a free kick just to the left of the D, after a foul on Tyson, but once again they were denied by the crossbar when McGugan's beautifully struck effort crashed off the woodwork.
Swansea could have put the game out of Forest's reach from the corner when substitute Darren Pratley found himself in loads of space in front of goal but put the ball wide.
Forest's first substitution of the game came just after the hour mark, with Tyson replaced by Radi Majewski.
And a great challenge by Chambers stopped Borini when he picked up the through ball on the left of the box.
Kris Boyd was the next Forest player to come on, replacing Tudgay in the 68th
Swansea defended in numbers as Forest tried to break through time and time again but with little success.
The home side continued to threaten on the break and came close with efforts from Sinclair, whose effort was stopped by Camp and Borini, who was denied by Morgan.
McGoldrick was the final Forest player to be substituted, replaced by Robert Earnshaw
to bring some fresh feet up front.
And the substitution paid off within two minutes when Majewski fed the ball through to Earnshaw as he ran into the box and sent the ball flying past De Vries with his first touch of the ball.
And a cross from Chris Gunter
looked like it was going to find Earnshaw's foot as he ran into the six-yard box, but there was too much speed on the ball and it ran out the other side.
As the game entered the four minutes stoppage time, Earnshaw's superb effort across the face of goal was denied by the post.
But when Forest won a corner they poured everyone forward, including Camp, and when a slip gifted Swansea the ball Pratley took advantage and sent the ball forward from near the half way line and into an empty net.Nottingham Forest:Camp(C), Moloney, Morgan, Chambers, Gunter, Moussi, Cohen, McGugan, McGoldrick(Earnshaw 78min), Tudgay(Boyd 68min), Tyson(Majewski 62min)
Subs not used: Smith, Lynch, Anderson, McKenna,
Bookings: Gunter 25min
Scorer: Earnshaw 80min
Swansea City: de Vries, Rangel, Tate, Williams, Monk(C), Allen(Moore 84min), Britton, Dobbie(Pratley 59min), Sinclair(Serran 88min), Dyer, Borini.
Subs not used: Ma-Kalambay, Orlandi, Gower, Beattie
Bookings: Pratley 90+3
Scorers: Britton 28min, Dobie 33min, Pratley 90+3min
Ref: A M Marriner