Matthew Lowton's swerving shot and a Christian Benteke debut strike gave Aston Villa their first league win of the season and Swansea a first defeat.
Lowton's spectacular strike, his first for Villa, took a slight deflection but may still have flown past Michel Vorm.
Ashley Williams and Nathan Dyer had good early chances for Swansea but the visitors' goal threat was sporadic.
Instead it was Villa's big summer recruit Benteke who sealed the win, punishing Williams's defensive blunder.
Defensively, Villa showed themselves eager to upset Swansea's smooth passing style, while in attack the home side also showed their intent, full-back Eric Lichaj catching the eye with his forays down the left flank.
But it was to Brad Guzan that Villa were initially indebted as the goalkeeper, again preferred to Shay Given, pulled off a fine double save.
First the American showed good reactions to beat out Williams's header from a corner, then launched himself to palm away a Nathan Dyer shot after the winger gathered the loose ball.
Villa 'worthy' winners - Lambert
Villa continued to probe and Brett Holman did well to intercept a stray pass and gallop into space on the right. His cross was destined for Darren Bent but Leon Britton had spotted the danger and tracked back to make a timely intervention.
Swansea's defence had an unfamiliar look, manager Michael Laudrup having been forced to change two of his back four because of Neil Taylor's broken ankle and Chico Flores's suspension.
Teenager Ben Davies continued to show he is an able deputy for left-back Taylor, while Alan Tate returned at centre-back more than a year after breaking his leg in a golf buggy accident.
Tate's joy at his return was short-lived however as defender Lowton, a £3m summer buy from Sheffield United, let fly with a speculative shot from 20 yards.
The ball just skimmed Tate's head but that was enough to help cause a wild deviation in its flight, completely wrong-footing Vorm in the Swansea goal.
The goal was the perfect cue for a minute's applause by the home fans to show support for midfielder Stiliyan Petrov -
currently in remission from leukaemia
- timed for the 19th minute to honour the Bulgarian's shirt number.
Swansea almost claimed an equaliser before the break when Angel Rangel's sublime pass sent Dyer free down the right.
The winger cut the ball across for Danny Graham but the striker was just unable to connect with the inviting cross.
Villa cranked up the pressure on the visitors after half-time and forced four corners in quick succession, the last causing a scramble in the penalty area.
Laudrup laments Swansea finishing
Andreas Weimann picked up the ball with his back to goal but swivelled to shoot off his right foot, only to be denied by the slight frame of Britton on guard at the far post.
Laudrup introduced record Swansea signing Pablo Hernandez for his debut in place of Wayne Routledge, but it did little to undo Villa's stranglehold on the game.
Tate needed to stretch every neck muscle to cut out a cross meant for Weimann as he surged into the Swansea box.
That was the Austrian's last action as Villa boss Paul Lambert sent on £7m deadline-day signing Benteke while another new recruit, Ashley Westwood, also made his debut in place of Stephen Ireland.
Benteke was soon in action, the Belgium international seeing his shot deflected wide, while Vorm had to be on his toes to tip Ciaran Clark's header over the bar.
The Dutch international again came to Swansea's rescue when Benteke's lay-off allowed Karim El Ahmadi to let fly.
Benteke should have opened his Villa account, and made the win safe, when he completely missed Bent's intelligent knock-back - but he swiftly made amends.
The Belgian was lurking to pounce when Williams sent a weak header back towards his keeper and Benteke chipped the ball over Vorm.
Swansea replacement Luke Moore, on for Graham, had two good chances to give the visitors late hope but Villa saw out a much-needed first win.
Villa manager Paul Lambert:
"I thought Christian was unplayable, he was an absolute threat.
"The great thing is he's only 21, only a kid and still learning.
"He had a really good game for the national team, if you're holding your own in that company you're doing alright.
"Everything is a culture shock for him at the minute but he was excellent.
"The goal will give him confidence. The crowd will go with him. You heard the crowd's reaction when he came on."
Swansea boss Michael Laudrup:
"When things are going well you want the run to continue.
"But we had an international break. You never know how the players will be when they get back."
Full Time The final whistle goes and the game is over.
The referee gives a free kick against Karim El Ahmadi for handball. Jonathan de Guzman restarts play with the free kick.
A cross is delivered by Angel Rangel, Bradley Guzan makes a comfortable save.
Luke Moore has an effort at goal from just inside the box that misses to the right of the goal.
Effort from the edge of the box by Ben Davies goes wide of the right-hand upright.
Darren Bent provided the assist for the goal.
87:03 Goal scored
Goal! - Christian Benteke - A Villa 2 - 0 Swansea Christian Benteke scores a goal from close in to the bottom right corner of the goal. Aston Villa 2-0 Swansea.
Centre by Angel Rangel, Luke Moore takes a shot. Save made by Bradley Guzan.
Luke Moore has shot on goal from just outside the box which goes wide of the right-hand upright.
Luke Moore takes a shot. Ciaran Clark gets a block in.
Matthew Lowton has an effort at goal from 30 yards. Comfortable save by Michel Vorm.
Barry Bannan sends in a cross, Alan Tate manages to make a clearance.
A cross is delivered by Barry Bannan.
Karim El Ahmadi has an effort at goal. Brilliant save by Michel Vorm.
The ball is crossed by Charles N'Zogbia.
Itay Shechter is ruled offside. Indirect free kick taken by Bradley Guzan.
The free kick is delivered right-footed by Jonathan de Guzman from right wing.
Booking Eric Lichaj receives a yellow card.
Nathan Dyer fouled by Eric Lichaj, the ref awards a free kick.
Substitution Itay Shechter comes on in place of Leon Britton.
Substitution Charles N'Zogbia is brought on as a substitute for Brett Holman.
Inswinging corner taken from the right by-line by Barry Bannan.
Shot from 20 yards from Christian Benteke. Ashley Williams gets a block in.
Corner from the left by-line taken by Barry Bannan, save by Michel Vorm.
Inswinging corner taken left-footed by Barry Bannan, Ciaran Clark takes a shot. Save made by Michel Vorm.
Effort from 20 yards by Christian Benteke. Angel Rangel gets a block in.
Brett Holman concedes a free kick for a foul on Jonathan de Guzman. Jonathan de Guzman takes the free kick.
Foul by Karim El Ahmadi on Jonathan de Guzman, free kick awarded. Direct free kick taken by Angel Rangel.
Substitution Luke Moore joins the action as a substitute, replacing Danny Graham.
Substitution Christian Benteke comes on in place of Andreas Weimann.
Substitution Ashley Westwood on for Stephen Ireland.
Centre by Nathan Dyer, Bradley Guzan makes a comfortable save.
Stephen Ireland concedes a free kick for a foul on Ben Davies. Miguel Michu takes the direct free kick.
The ball is sent over by Ron Vlaar, Ashley Williams manages to make a clearance.
Danny Graham takes a shot. Blocked by Alan Tate.
Direct free kick taken by Angel Rangel.
Substitution Pablo Hernandez joins the action as a substitute, replacing Wayne Routledge.
Stephen Ireland gives away a free kick for an unfair challenge on Jonathan de Guzman.
Effort from 20 yards by Andreas Weimann.
Centre by Matthew Lowton.
Outswinging corner taken from the left by-line by Barry Bannan, Andreas Weimann has an effort at goal from 18 yards. Leon Britton makes a clearance.
Corner taken left-footed by Barry Bannan, Ciaran Clark takes a shot. Ashley Williams gets a block in.
Darren Bent takes a shot from 20 yards. Blocked by Alan Tate.
Inswinging corner taken left-footed by Barry Bannan from the right by-line to the near post, Danny Graham manages to make a clearance.
Shot from 6 yards from Ciaran Clark. Brilliant save by Michel Vorm.
Outswinging corner taken by Barry Bannan from the left by-line.
Unfair challenge on Nathan Dyer by Stephen Ireland results in a free kick. Leon Britton takes the free kick.
Angel Rangel concedes a free kick for a foul on Stephen Ireland. Bradley Guzan takes the free kick.
A cross is delivered by Nathan Dyer, Ciaran Clark manages to make a clearance.
The referee starts the second half.
45:00 +2:14 Half time
Half Time The half-time whistle blows.
Brett Holman gives away a free kick for an unfair challenge on Ben Davies. Free kick taken by Ben Davies.
Unfair challenge on Nathan Dyer by Eric Lichaj results in a free kick. Jonathan de Guzman restarts play with the free kick.
The ball is delivered by Nathan Dyer.
Darren Bent is ruled offside. Leon Britton takes the indirect free kick.
Foul by Wayne Routledge on Eric Lichaj, free kick awarded. Bradley Guzan takes the free kick.
Ron Vlaar takes the direct free kick.
Booking Booking for Miguel Michu for unsporting behaviour.
Free kick awarded for a foul by Miguel Michu on Eric Lichaj.
Corner taken by Barry Bannan played to the near post, clearance by Alan Tate.
Shot by Andreas Weimann from 18 yards. Save made by Michel Vorm.
Direct free kick taken by Leon Britton.
Booking Matthew Lowton receives a yellow card.
Foul by Matthew Lowton on Ben Davies, free kick awarded.
Miguel Michu delivers the ball, save by Bradley Guzan.
A cross is delivered by Matthew Lowton, Ben Davies gets a block in.
The ball is sent over by Eric Lichaj, Alan Tate makes a clearance.
Effort on goal by Darren Bent from 18 yards.
Darren Bent fouled by Ashley Williams, the ref awards a free kick. Barry Bannan crosses the ball from the free kick left-footed from left channel.
Shot from just outside the box by Brett Holman goes over the crossbar.
Corner taken right-footed by Jonathan de Guzman, Effort on goal by Miguel Michu from deep inside the area goes harmlessly over the bar.
The ball is sent over by Barry Bannan, clearance made by Alan Tate.
Jonathan de Guzman restarts play with the free kick.
Booking Ciaran Clark is cautioned.
Foul by Ciaran Clark on Angel Rangel, free kick awarded.
Angel Rangel delivers the ball.
The official flags Andreas Weimann offside. Ben Davies takes the indirect free kick.
Inswinging corner taken left-footed by Barry Bannan from the right by-line, clearance made by Alan Tate.
The assist for the goal came from Barry Bannan.
15:14 Goal scored
Goal! - Matthew Lowton - A Villa 1 - 0 Swansea Matthew Lowton gets on the score sheet with a goal from the edge of the penalty box low into the middle of the goal. Aston Villa 1-0 Swansea.
Stephen Ireland takes a inswinging corner to the near post, Ben Davies manages to make a clearance.
A cross is delivered by Brett Holman, clearance by Ben Davies.
Corner taken by Barry Bannan from the left by-line to the near post, Ashley Williams makes a clearance.
Jonathan de Guzman takes a outswinging corner. Corner taken right-footed by Jonathan de Guzman from the right by-line to the near post, Ashley Williams takes a shot. Nathan Dyer takes a shot. Save made by Bradley Guzan. Save made by Bradley Guzan.
The ball is crossed by Nathan Dyer, Eric Lichaj gets a block in.
The ball is sent over by Eric Lichaj, Effort on goal by Andreas Weimann from just inside the area clears the bar.
Ben Davies produces a cross.
The ball is sent over by Angel Rangel, clearance by Eric Lichaj. Corner from right by-line taken by Jonathan de Guzman.
Miguel Michu fouled by Barry Bannan, the ref awards a free kick. Leon Britton takes the free kick.
The ball is swung over by Brett Holman, Andreas Weimann takes a shot. Alan Tate gets a block in.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.