Despite testing conditions in South Wales due to torrential downpours ahead of kick-off, Wilfried Bony put the hosts ahead as he raced onto Jonjo Shelvey’s pinpoint through ball to slot beyond the onrushing Brad Guzan.
Paul Lambert’s side responded well and found themselves back on level terms through Gabriel Agbonlahor as the striker guided Marc Albrighton’s inviting delivery beyond Michel Vorm.
However, just four minutes later, Shelvey put Swansea back in front with a stunning strike from range.
The midfielder brought down Ron Vlaar’s poor clearance just on the edge of the centre circle before spotting Guzan off his line and beating the American with an audacious effort.
Second-half substitute Pablo Hernandez then added a third when he was found unmarked by Shelvey at the back post before cutting inside to fire beyond Guzan.
Bony calmly wrapped things up from the spot in stoppage time after Marvin Emnes was clattered in the area by Nathan Baker.
Despite Villa’s dismal form, manager Paul Lambert named an unchanged side from the one that drew 0-0 with Southampton last week.
Swansea’s interim boss Garry Monk also stood by his starting XI, and with good reason. The players who toppled Newcastle last weekend rewarded him with the club’s first back-to-back league wins in 58 games.
Six minutes in, both sets of fans stood and applauded for former Swansea midfielder Ferrie Bodde, who was in an induced coma after suffering pneumonia. Little did they know he had come out of that state and was watching the game from his Dutch hospital bed.
The Swans may have been without last season’s top scorer Michu – out once again with an injured ankle – but this term’s most potent marksman Bony did not need long to put his side in front.
The Ivorian opened the scoring in the 10th minute when he latched on to a through-ball from Shelvey that pierced Villa’s high defensive line.
Baker appealed for offside, but the flag stayed down and Bony side-footed past Guzan with ease to bag his 14th league goal of the season.
Villa enjoyed decent possession in the first quarter but were restricted to long-range efforts from Agbonlahor and Albrighton, neither of whom could test Vorm.
In the 22nd minute the deserved equaliser came thanks to some slick football down the right. Karim El Ahmadi slipped the ball down the flank to the overlapping Albrighton, whose curling cross was met by Agbonlahor from close range giving Vorm no chance.
The goal ended a Premier League drought of three hours and 42 minutes for Lambert’s charges.
A wondrous strike from Shelvey put the Swans back in front three minutes later. After chesting down Villa captain Ron Vlaar’s clearance kick, he hit a missile of a volley from 45 yards that cleared the unsuspecting Guzan and curled into the top corner.
Bony tested Guzan with a low-shot from 20 yards, but the American had it covered.
Swansea left-back Ben Davies forced a save after the break when he fired in a left-footer and Shelvey also tested the busy Villa keeper with a low drive.
Jonathan De Guzman should have then extended Swansea’s lead when he skewed the ball wide from a Wayne Routledge cross on the hour.
Monk’s side continued to probe and press and were rewarded for their dominance when Hernandez made it 3-1. The Spaniard was free at the back post when Shelvey crossed, cut in field and scored via the head of Ryan Betrand, who was back defending the goal line.
Villa rarely threatened the home goal in the second half and their misery was compounded in stoppage time when Baker pushed substitute Emnes in the back and conceded a penalty.
The result from goal-hungry Bony – his 15th league strike – was never in doubt.