His 43rd minute tap-in from six yards secured three vital points. But this was not a game for the advocates of adventurous football.
David O'Leary's side came to stifle Chelsea's midfield and did an effective job.
Villa had five men against four in midfield with Juan Pablo Angel as the lone striker and Chelsea failed to overcome this simple tactic.
Hasselbaink's sixth goal of the season was simplicity itself.
Adrian Mutu, wide on the right, fed the ball to Frank Lampard. The English midfielder unleashed a vicious right footer which Villa keeper Thomas Sorensen could only parry.
The ball fell to Hasselbaink, who had the easiest chance to tap the ball home from six yards.
That should have set the Londoners up to put Villa away but they failed to capitalise.
Villa continued to upset Chelsea's rhythm and too many of the Londoners looked out of sorts.
Villa had two great chances to get something from the game but Angel squandered both in the 50th and 88th minutes, much to the annoyance of O'Leary.
"We needed to take our chances," said the Irishman.
Chelsea: Cudicini, Johnson, Gallas, Desailly, Bridge, Veron (Cole 79), Lampard, Petit (Makelele 73), Duff, Mutu (Gronkjaer 63), Hasselbaink.
Subs Not Used: Crespo, Ambrosio.
Aston Villa: Sorensen, Delaney, Alpay, Dublin, Samuel, Hendrie, McCann, Barry, De la Cruz, Whittingham (Vassell 53), Angel.
Subs Not Used: Hitzlsperger, Allback, Ridgewell, Postma.
Attendance: 41,182
Referee: J Winter (Cleveland).