Match ends, Swansea City 4, Aston Villa 1.
Jonjo Shelvey scored a wonder goal as Swansea all but guaranteed their Premier League status and left Aston Villa in danger of relegation.
Wilfried Bony put Swansea ahead, slotting the ball past Brad Guzan.
Gabriel Agbonlahor converted Marc Albrighton's cross to equalise before Shelvey volleyed home from the centre circle.
Pablo Hernandez curled in a third before Bony scored his second with an injury-time penalty.
The result leaves Villa just four points above the relegation zone with three games to go.
Swansea's first back-to-back wins in the Premier League since December 2012 means they are 12th in the table, eight points clear of the bottom three.
Whilst Garry Monk's men can potentially be caught by teams in the relegation zone, their goal difference - the best in the bottom half - is effectively worth an extra point.
Their impressive victory at a wet and windy Liberty Stadium means Paul Lambert's visitors are far from safe.
The nature of their loss and poor run of form will be a cause for concern for the club.
They have now lost five of their last six matches. Two of their three remaining fixtures are away at Manchester City and Tottenham.
Villa were behind early on when Shelvey's superb long pass put Bony clear and the Ivory Coast striker slotted the ball past the advancing Guzan.
The visitors pressed in a bid to get back into the game, crossing the ball into the box at every opportunity.
Karim El Ahmadi put Albrighton into space out wide and the winger's cross was smashed into the net from inside the six yard area by Agbonlahor.
It was the England international's first goal since the New Year's Day win at Sunderland.
Villa's revival was short lived and less than four minutes later Ron Vlaar's poor clearance fell straight to Shelvey on the edge of the centre circle, just inside the Villa half.
The Swansea midfielder controlled the ball before volleying a dipping shot over Guzan into the top corner of the goal.
The strike seemed to take the momentum away from Villa as Swansea finished the half strongly.
Villa pressed after the break but created little of note to threaten Michel Vorm's goal.
Shelvey's low shot from just outside the area was tipped around the post by Guzan as Swansea pushed forward.
The killer blow was finally delivered by Hernandez. Shelvey's cross found the Spaniard in space inside the area and the former Valencia winger curled the ball high into the corner of the net.
Late on Villa defender Nathan Baker was judged to have fouled Marvin Emnes inside the area whilst challenging for a ball in the air.
Bony fired home from the spot to send Swansea fans home happy while Villa were booed off the pitch by their travelling supporters.
- 22RangelSubstituted forTaylorat 77'minutes
- 2AmatBooked at 77mins
- 20de GuzmánSubstituted forFultonat 83'minutes
- 15RoutledgeSubstituted forEmnesat 88'minutes
- 7BacunaSubstituted forLowtonat 45'minutes
- 2BakerBooked at 90mins
- 8El AhmadiSubstituted forHoltat 75'minutes
- 15WestwoodBooked at 90mins
- 12AlbrightonBooked at 89mins
- 10WeimannSubstituted forRobinsonat 67'minutes
- Mark Clattenburg
- Shots on Target
Second Half ends, Swansea City 4, Aston Villa 1.
Goal! Swansea City 4, Aston Villa 1. Wilfried Bony (Swansea City) converts the penalty with a right footed shot to the bottom left corner.
Matthew Lowton (Aston Villa) is shown the yellow card.
Penalty conceded by Nathan Baker (Aston Villa) after a foul in the penalty area.
Penalty Swansea City. Marvin Emnes draws a foul in the penalty area.
Attempt saved. Pablo Hernández (Swansea City) right footed shot from the left side of the box is saved in the bottom right corner. Assisted by Jonjo Shelvey.
Nathan Baker (Aston Villa) is shown the yellow card for a bad foul.
Foul by Nathan Baker (Aston Villa).
Marvin Emnes (Swansea City) wins a free kick on the left wing.
Nathan Baker (Aston Villa) wins a free kick in the defensive half.
Foul by Wilfried Bony (Swansea City).
Offside, Aston Villa. Brad Guzan tries a through ball, but Grant Holt is caught offside.
Ron Vlaar (Aston Villa) wins a free kick in the defensive half.
Foul by Pablo Hernández (Swansea City).
Marc Albrighton (Aston Villa) is shown the yellow card for a bad foul.
Foul by Marc Albrighton (Aston Villa).
Ben Davies (Swansea City) wins a free kick on the left wing.
Foul by Marc Albrighton (Aston Villa).
Wilfried Bony (Swansea City) wins a free kick in the attacking half.