Aston Villa moved into the top six of the table following their fourth straight Premier League win.
Having been under the cosh for the opening half an hour, Villa led 1-0 at the break courtesy of John Carew's header from Ashley Young's free-kick.
Captain Gareth Barry fired home the second from the spot after opposing skipper Ryan Nelsen was shown a straight red card for a tug on Gabriel Agbonlahor.
And with Rovers down to ten men, the Midlands club added the gloss to a professional performance with late goals from Young and substitute Marlon Harewood.
With both managers having the luxury of fully fit squads at their disposal, O'Neill named an unchanged side for the fourth game running, while Mark Hughes made two changes to the team that drew 2-2 away to Fulham, with Roque Santa Cruz and David Dunn replacing Tugay and Morten Gamst Pedersen.
And looking for their first win in four league fixtures, Rovers started the game at a blistering pace - registering now fewer than five meaningful attacks in the opening 20 minutes.
On eight minutes, Dunn's 60-yard pass out to Santa Cruz was returned to him in the centre and the former Birmingham midfielder's long-range strike was fumbled away by Scott Carson.
On 12 minutes, David Bentley's corner was headed back into the box by Dunn and Nelsen's swinging left-foot volley went straight into the arms of the England keeper.
A minute later, Benni McCarthy showed some delightful skill inside his own half before playing a ball over the top to his strike partner, but after advancing towards the Villa goal, Santa Cruz blazed inches over the upright.
On the quarter-hour mark, more trickery from McCarthy led to a foul on the edge of the area, but Bentley's top corner-bound free-kick was expertly tipped over the bar by Carson.
On 20 minutes, the ball broke kindly to Santa Cruz in the centre and after stepping inside his man, he slipped a pass through to McCarthy, who finished with aplomb, only to be denied his sixth league goal of the season by a contentious offside flag.
But just before the half-hour mark, Villa did open the scoring with their first real attack of the game. Young swung in a free-kick from the left, which he had won himself, and former Rovers trialist Carew beat Brad Friedel to the ball and glanced his header into the empty net.
Rovers began the second half in much the same vein as they had started the first - dominating possession and producing some neat interplay in the final third.
And just three minutes after the break they were almost back on level terms. McCarthy's fierce right-foot volley looked to be heading towards the back of the net, only for Wilfred Bouma's head to get in the way.
And the home side were again made to pay for the missed chance, as Villa doubled their advantage, again against the run of play. On 52 minutes, Nelsen was given his marching orders after being adjudged to have pulled back Agbonlahor in front of goal and Barry confidently slotted the ball home from the spot.
Rovers had appeals for a penalty of their own moments later when Dunn's deflected shot bounced up onto the arm of Bouma, but they fell on deaf ears.
Rovers rang the changes, with Steven Reid and Jason Roberts entering the arena, but it was the visitors who added to their tally.
On 81 minutes, Olof Mellberg picked out Young at the far post after an excellent solo run down the right and the England Under-21 international curled the ball past Friedel into the corner of the net.
And with just a minute of normal time remaining, another quick Villa broke ended with Carew's shot being parried and substitute Harewood blasting home the rebound.