Charlton 1 Aston Villa 2 Juan Pablo Angel's 10th Premiership goal of the season emphasised Aston Villa's dominance as they moved back to seventh place in the table.
The Colombian international slammed the ball into the net from a tight angle to put him into double figures in the league three minutes before the interval.
It summed up a clinical away display as John Gregory's men picked up three points for only the third time on their league travels this season.
Darius Vassell had provided them with the lead with a deflected shot early on and Graham Stuart's late header was simply a consolation.
Last week, a win over Derby got Villa moving back up the table. Gregory subsequently publicly challenged his side to finish fourth in the Premiership and claim a Champions League place by winning nine of their remaining 16 games. The equation is now eight from 15.
Charlton began brightly with some neat passing but they were behind as early as the eighth minute. From Villa's first purposeful attack, Mark Fish's fluffed clearance allowed Jlloyd Samuel the opportunity to centre from the left and he picked out the unmarked Vassell in the area.
The England Under-21 striker took an eternity to shoot but when he did Jorge Costa's desperate lunge saw the ball loop over Dean Kiely, who had been presented with a silver salver before kick-off by Sven-Goran Eriksson to commemorate 500 league games.
CHARLTON: Kiely, Young (Konchesky 29), Costa, Fish, Powell, Stuart, Parker (Fortune 89), Jensen (Lisbie 68), Robinson, Euell, Johansson. Subs Not Used: Ilic, Bart-Williams. Booked: Costa. Goals: Stuart 88.
ASTON VILLA: Schmeichel, Delaney, Mellberg, Staunton, Samuel, Merson, Boateng, Hendrie (Barry 88), Hadji, Angel, Vassell. Subs Not Used: Enckelman, Ginola, Stone, Balaban. Booked: Angel. Goals: Vassell 8, Angel 42.
Referee: R Styles