Dean Smith's side took charge early on and managed to avoid failing in a second successive play-off final despite Derby's late rally, with the Rams' hapless defending giving Villa a helping hand in a match estimated to be worth £170million to the victors.
Villa looked the more threatening of the two sides for most of the first half and finally took the lead in the 44th minute, as Anwar El Ghazi directed a cross home from close range.
John McGinn punished a woeful Kelle Roos error just before the hour and that was ultimately enough to send Villa up, with Martyn Waghorn's 81st-minute strike too little, too late for Frank Lampard's side.
Villa made a promising start, with Axel Tuanzebe fluffing his lines a few yards out and Jack Grealish rifling just over in the early stages.
That momentum waned initially, before Tammy Abraham's effort in the 33rd minute that narrowly missed the top-right corner of the net seemed to inspire an improvement.
And Villa finally got their goal just before half-time, as El Ghazi got ahead of his marker to meet Ahmed Elmohamady’s cross, the ball finding the net via his back as he stooped for a header.
Quality was lacking at the start of the second half and goalkeeper Roos epitomised that with a dreadful error in the 59th minute, failing to collect what appeared to be a routine catch as McGinn beat him to it to head in.
Derby piled the pressure on towards the end and, after going close through Jayden Bogle and Mason Mount, Jack Marriott's left-footed strike from the centre of the box took a slight deflection into the bottom-left corner off Waghorn.
But Villa held on to seal their return to the top flight.