Jimmy Floyd Hasselbaink, Joseph-Desire Job and Michael Reiziger got the goals as Middlesbrough romped to victory.
Villa missed a glut of chances, with Juan Pablo Angel heading against the bar and dragging a simple shot wide.
Boro's Gareth Southgate headed off the line from Gareth Barry, who also hit the post, only for Hasselbaink to break away and blast into the bottom corner.
Substitute Job got the second against the run of play with a cool finish and Reiziger fired home a third late on.
Middlesbrough boss Steve McClaren brought back his big guns, making five changes from the side that played in the Uefa Cup in midweek.
But it was Villa who started the brighter with Gavin McCann flashing a half-volley from the edge of the box just wide.
Angel then headed against the top of the bar after Boro had failed to clear a corner.
Boro almost took advantage of a mix-up between Olof Mellberg and Thomas Sorensen in dealing with a diagonal ball from Stewart Downing, but Szilard Nemeth fluffed his shot.
Villa should have taken the lead when Steven Davis pulled the ball back for Barry, whose shot was headed off the line by Southgate.
Boro broke immediately with Downing finding George Boateng, who looked up to see Hasselbaink had broken free of his marker on the left wing.
The Dutch forward ran on to the pass and went straight at a backtracking Mark Delaney before unleashing a right-foot shot into the bottom corner.
The goal spurred Villa on and they enjoyed a period of pressure.
Barry crossed for McCann to head too high and then an unmarked Davis blasted over from close range.
At the other end, Sorensen pulled off a spectacular save to deny a Southgate header from Downing's free-kick.
The second half saw Villa continue to dominate play.
Angel missed a glorious chance for a leveller when Davis combined with Nolberto Solano, who slipped a pass in for the Colombian striker, but with time to pick his spot he shot wide of the target.
The lively Davis was causing plenty of damage down the right and Barry should have done better from close range after being set up by his young team-mate.
But Middlesbrough always looked dangerous on the counter-attack and Hasselbaink could have got a second when he was handed a free header from a corner, Sorensen doing well to tip over the bar.
Downing was involved in the second goal as he broke free and slipped the ball for Job to casually sidefoot past Sorensen.
Villa's misery was almost complete when the unfortunate Barry saw his shot come back off the woodwork.
But there was still time for Reiziger to score his first goal for the Teessiders with three minutes left, beating Sorensen at the near post.
The Dutch defender had scored on just his eighth appearance for Boro, after going nearly seven years without one at Barcelona.
Middlesbrough: Schwarzer, McMahon, Southgate,
Riggott (Cooper 38), Reiziger, Nemeth (Doriva 62), Boateng,
Zenden, Downing, Hasselbaink, Viduka (Job 45).
Subs Not Used: Nash, Morrison.
Goals: Hasselbaink 20, Job 68, Reiziger 88.
Aston Villa: Sorensen, Samuel, Delaney, Mellberg, De la Cruz,
Solano, Davis, McCann (Cole 76), Barry,
Whittingham (Berson 45), Angel.
Subs Not Used: Postma, Ridgewell, Luke Moore.
Ref: A D'Urso (Essex).