Middlesbrough's unbeaten home record was shattered by a Villa side that had not previously won on their travels this season.
Villa had scored only four away goals before they ended their travel sickness to the obvious delight of a gallant band of supporters who had made the journey to the North East on a bitterly cold night.
Boro had built up a reputation as a fortress on their own ground before this game. However, their defence leaked goals with the absence of skipper Gareth Southgate clearly felt.
Southgate has been an inspiration this season but he was ruled out against his former club through flu and Boro certainly missed his leadership.
Icelandic international Joey Gudjonsson had a debut to remember for Villa. He scored a goal, was booked, and was then replaced.
There appeared to be no danger when Gudjonsson fired in a 40-yard free kick but Boro keeper Mark Schwarzer completely misjudged the height of the ball.
The goal gave Villa a two-goal lead in the 31st minute following a 24th minute goal by Darius Vassell.
Boro staged a stirring two-goal rally before the break. A Joseph-Desire Job header gave the unmarked Massimo Maccarone a chance to score his sixth goal of the season.
The never say die Jonathan Greening earned an equaliser to cap a three-goal burst in five minutes.
Gareth Barry put Villa ahead shortly after the break when he scored from close range with Middlesbrough players protesting in vain for offside.
Shortly after a tackle by George Boateng on Gudjonsson brought an angry touchline response from Villa boss Graham Taylor.
Fortunately for Gudjonsson the injury was not serious. Luckily for Boateng he was only shown the yellow card.
Vassell put the issue beyond doubt in the 80th minute and Dion Dublin piled on the agony for Middlesbrough with a fifth goal in stoppage time.