Aston Villa cruised into the fourth round of the FA Cup with a comfortable victory over Bristol Rovers.
Marc Albrighton set the visitors on their way with a low drive, before Gabriel Agbonlahor capitalised on a mistake to fire home from 30 yards.
Ciaran Clark's fine individual goal put Villa in control before a late rally from the hosts.
Scott McGleish lobbed Brad Guzan to salvage some pride, but missed from the spot in the final minute of the match.
After weathering an early burst of enthusiasm, Villa's victory was never in doubt and Rovers will be upset with the way they allowed their top-flight opponents to stroke the ball around, seemingly at will.
Once they went into the lead, Villa looked like they were out on the training ground, such was the ease with which they dominated possession.
The Pirates, who stand only two points clear of the League Two relegation zone and sacked manager Paul Buckle on Tuesday , staged a late fightback but it was all too little, too late.
In front of a bumper crowd, the hosts made a swashbuckling start to the match - the highlight being a Chris Zebroski shot that was easily dealt with by Guzan.
However, for all their huff and puff, Rovers struggled to create many clear-cut chances and it did not take long for Villa to establish their superiority.
It was not particularly pretty from the Premier League side, with too many passes going astray, but they did manage to create enough chances to earn a narrow half-time lead.
Did you know?
- The two teams were separated by 74 places heading into the match
- Aston Villa have won the FA Cup seven times, but their last triumph came in 1957
Emile Heskey twice went close, with a shot over the bar and a header that was well saved by Michael Poke, before Alex McLeish's side finally got their noses in front.
Albrighton, who was proving to be Villa's best outlet down the right flank, was sent scampering clear by Stiliyan Petrov's clever pass and he made no mistake with an angled shot from inside the penalty area.
Rovers caught their opponents cold in the early stages of the second half, but McGleish could only scuff Joe Anyinsah's pull-back with the goal at his mercy.
Agbonlahor was brought on by McLeish, perhaps in a bid to inject some urgency into his team's performance - and the move paid dividends.
With the match drifting, the England striker took things into his own hands by outmuscling his marker before striding forward and clinically placing his shot into the bottom corner.
Rovers remained short on inspiration despite their endeavour, but Anyinsah did force a corner with a low drive that Guzan turned around the post.
And victory was completed for Villa when the impressive Clark surged forward from the back and cut inside before placing his shot past Poke.
However, there was still time for some late drama.
McGleish capitalised on a poor Richard Dunne backpass to race clear and beat the advancing Guzan, before hopes of an incredible comeback were raised when Stephen Warnock was penalised for handball in the area.
McGleish stepped up, but saw his tame effort saved by the Villa goalkeeper.
Live Text Commentary
Full Time The referee brings the game to a close.90:00 +3:41
The offside flag is raised against Gabriel Agbonlahor. Michael Poke takes the indirect free kick.90:00 +3:17
Short corner taken by Marc Albrighton from the left by-line.90:00 +3:00
Gary Gardner takes a shot. Save made by Michael Poke.90:00 +2:33 Penalty
Penalty taken by Scott McGleish is saved by Bradley Guzan. Bristol Rovers 1-3 Aston Villa.90:00 +2:05
The referee penalises Stephen Warnock for handball.90:00 +1:51
Andy Dorman takes a shot.90:00 +1:36
Dan Woodards sends in a cross, Richard Dunne manages to make a clearance.90:00 +1:26
A cross is delivered by Lee Brown, Barry Bannan manages to make a clearance.89:55 Goal scored
Goal! - Scott McGleish - Bristol R 1 - 3 A Villa Goal scored by Scott McGleish from just outside the area low into the middle of the goal. Bristol Rovers 1-3 Aston Villa.88:09
Kayne McLaggon fouled by Gary Gardner, the ref awards a free kick. Free kick taken by Craig Stanley.85:43 Substitution
Substitution (Bristol Rovers) makes a substitution, with Kayne McLaggon coming on for Joe Anyinsah.85:00
Corner taken by Barry Bannan from the right by-line, save by Michael Poke.82:55
Stephen Warnock concedes a free kick for a foul on Chris Zebroski. The free kick is swung in right-footed by Craig Stanley, Richard Dunne manages to make a clearance.81:24 Substitution
Substitution Stiliyan Petrov goes off and Barry Bannan comes on.78:19 Substitution
Substitution Eliot Richards leaves the field to be replaced by Lee Brown.77:49 Goal scored
Goal! - Ciaran Clark - Bristol R 0 - 3 A Villa Ciaran Clark gets on the score sheet with a goal from just outside the penalty box to the bottom left corner of the goal. Bristol Rovers 0-3 Aston Villa.77:25
The ball is sent over by Marc Albrighton.76:31
Marc Albrighton fouled by Chris Zebroski, the ref awards a free kick. Free kick crossed by Stiliyan Petrov, clearance by Aaron Downes.75:22
Outswinging corner taken right-footed by Craig Stanley from the right by-line, Aaron Downes gives away a free kick for an unfair challenge on Gary Gardner. Indirect free kick taken by Bradley Guzan.
Cian Bolger takes the indirect free kick.73:30 Substitution
Substitution Gary Gardner on for James Collins.73:30
Gabriel Agbonlahor challenges Chris Zebroski unfairly and gives away a free kick.73:17
A cross is delivered by Marc Albrighton, Gabriel Agbonlahor takes a shot. Blocked by Cian Bolger.72:32
The ball is crossed by Gary Sawyer, clearance by Richard Dunne.71:18
Gary Sawyer produces a cross, clearance by Richard Dunne.70:49
Corner taken right-footed by Marc Albrighton, Craig Stanley manages to make a clearance.70:30
Marc Albrighton takes the inswinging corner, clearance by Aaron Downes.70:08
The ball is delivered by Darren Bent, clearance by Gabriel Agbonlahor.68:02
Outswinging corner taken by Craig Stanley from the right by-line, Headed effort from inside the area by Aaron Downes misses to the left of the target.67:48
Joe Anyinsah takes a shot. Richard Dunne gets a block in.66:04
The ball is crossed by Joe Anyinsah, clearance by Richard Dunne.63:35
Assist on the goal came from Stiliyan Petrov.63:35 Goal scored
Goal! - Gabriel Agbonlahor - Bristol R 0 - 2 A Villa A goal is scored by Gabriel Agbonlahor from just outside the area to the bottom right corner of the goal. Bristol Rovers 0-2 Aston Villa.60:27
The ball is sent over by Aaron Downes, Darren Bent makes a clearance.59:25
The offside flag is raised against Stephen Ireland. Michael Poke takes the indirect free kick.57:43
The ball is crossed by Darren Bent, comfortable save by Michael Poke.53:35
A cross is delivered by Gabriel Agbonlahor.52:14
Free kick awarded for a foul by Chris Zebroski on Stiliyan Petrov. James Collins takes the indirect free kick.50:51
Alan Hutton sends in a cross, clearance made by Chris Zebroski.50:13
Marc Albrighton decides to take the corner short.49:24
The ball is sent over by Stephen Warnock, clearance made by Gary Sawyer.48:57
Gabriel Agbonlahor takes a shot. Aaron Downes gets a block in.48:14
Free kick awarded for a foul by Craig Stanley on Stiliyan Petrov. Free kick taken by Bradley Guzan.47:55
Stephen Warnock crosses the ball, clearance made by Dan Woodards.46:06
Chris Zebroski crosses the ball, clearance by James Collins.45:13
Centre by Joe Anyinsah, Shot from just outside the penalty box by Scott McGleish misses to the left of the target.45:01
The second half has started.45:01 Substitution
Substitution Gabriel Agbonlahor on for Emile Heskey.45:00 +2:43 Half time
Half Time The ref blows to signal half-time.44:09
Marc Albrighton delivers the ball, clearance by Craig Stanley.43:06
The ball is crossed by Stephen Warnock, Effort from the edge of the box by Marc Albrighton goes wide of the right-hand upright.41:46
Marc Albrighton concedes a free kick for a foul on Andy Dorman. The free kick is delivered right-footed by Craig Stanley from right channel, clearance made by Richard Dunne.39:39
Unfair challenge on Stephen Warnock by Chris Zebroski results in a free kick. Stephen Warnock restarts play with the free kick.38:53
Shot from 25 yards by Chris Zebroski. Bradley Guzan makes a comfortable save.37:30
Stephen Warnock has an effort at goal from deep inside the area missing to the left of the target.36:41
Stephen Ireland gives away a free kick for an unfair challenge on Dan Woodards. Free kick crossed by Craig Stanley, Bradley Guzan makes a comfortable save.36:25
Free kick awarded for an unfair challenge on Cian Bolger by Marc Albrighton. Craig Stanley restarts play with the free kick.34:08
The assist for the goal came from Stiliyan Petrov.34:08 Goal scored
Goal! - Marc Albrighton - Bristol R 0 - 1 A Villa Goal scored by Marc Albrighton from deep inside the penalty area low into the middle of the goal. Bristol Rovers 0-1 Aston Villa.32:52
The ball is swung over by Marc Albrighton, Aaron Downes makes a clearance.31:40
A cross is delivered by Marc Albrighton, clearance made by Dan Woodards. Marc Albrighton is caught offside. Gary Sawyer restarts play with the free kick.30:28
The ball is crossed by Gary Sawyer, comfortable save by Bradley Guzan.30:09
Corner from the right by-line taken by Craig Stanley, clearance by Ciaran Clark.30:03
The ball is sent over by Joe Anyinsah, Richard Dunne gets a block in.27:18 Substitution
Substitution Scott McGleish replaces Mustapha Carayol.24:46
Foul by Stephen Warnock on Eliot Richards, free kick awarded. Michael Poke takes the free kick.24:19
Outswinging corner taken right-footed by Marc Albrighton, save made by Michael Poke.23:22
Short corner worked by Marc Albrighton. Marc Albrighton has an effort at goal from deep inside the area missing to the right of the target.23:03
Corner from the right by-line taken by Marc Albrighton, Emile Heskey takes a shot. Save made by Michael Poke.22:45
Stephen Warnock sends in a cross, Emile Heskey takes a shot. Blocked by Aaron Downes.19:03
The ball is sent over by Marc Albrighton, Cian Bolger makes a clearance.18:48
Stephen Warnock delivers the ball, Michael Poke makes a save.18:39
Stephen Warnock crosses the ball, clearance made by Cian Bolger.18:13
Stephen Ireland crosses the ball, clearance made by Dan Woodards.16:50
Centre by Stephen Ireland, Shot from inside the area by Emile Heskey clears the bar.14:34
The ball is swung over by Marc Albrighton, clearance made by Cian Bolger.14:14
Alan Hutton crosses the ball, clearance made by Aaron Downes.12:43
Eliot Richards has an effort at goal from outside the penalty box missing to the wide right of the target.9:31
The ball is crossed by Marc Albrighton, save made by Michael Poke.9:23
A cross is delivered by Richard Dunne, Craig Stanley manages to make a clearance.8:54
Corner taken by Marc Albrighton from the right by-line.8:46
Marc Albrighton sends in a cross, clearance made by Cian Bolger.5:22
Chris Zebroski takes a shot. Save made by Bradley Guzan.2:52
Free kick awarded for an unfair challenge on Alan Hutton by Joe Anyinsah. Bradley Guzan takes the free kick.2:27
A cross is delivered by Craig Stanley, clearance made by Alan Hutton.2:16
Chris Zebroski produces a cross, Ciaran Clark gets a block in.2:11
Chris Zebroski delivers the ball, Richard Dunne makes a clearance.1:44
Dan Woodards crosses the ball, save made by Bradley Guzan.0:00
The referee starts the match.
Live data and text provided by our data suppliers