Aston Villa beat Derby County 2-1 in the Sky Bet Championship Play-Off Final to secure their place in the Premier League for the 2019/20 season.
Goals from Anwar El Ghazi and John McGinn under the famous arch earned promotion for the Villans, avenging last year's Play-Off Final defeat to Fulham in the process. They were made to sweat though, as substitute Jack Marriott pulled one back for the Rams with nine minutes to go.
Ahead of the game, Villa boss Dean Smith named a familar starting XI, with the likes of Tyrone Mings, McGinn, Jack Grealish and Tammy Abraham all included.
Frank Lampard, meanwhile, made two changes to the side that beat Leeds United 4-2 at Elland Road in the Semi-Final second leg, with Ashley Cole starting in place of the suspended Scott Malone, and Tom Huddlestone recalled in midfield.
And it was Villa who came out of the box quickest, with Conor Hourihane controlling a mis-kick from Derby keeper Kelle Roos and setting Grealish away, only for the midfielder to fire over. Minutes later, McGinn tried one of his trademark volleys from the edge of the area, but dragged it wide.
With chances few and far between in the first half, Derby were struggling to break down the Villa defence. At the other end, with 33 minutes on the clock, Abraham picked up the ball and ran at the Rams back-line, shooting narrowly over.
Derby's first real opening finally arrived three minutes later, as Mason Mount got into space and saw an effort saved by Jed Steer. The next chance, however, did bring a goal, and it was those in claret and blue celebrating.
An inviting cross from the right by Ahmed Elmohamady was met by El Ghazi, who got in front of his man and stooped to head Villa into the lead just before the break.
With both sides giving their all, the start of the second half brought a couple of bookings in quick succession, but little in the way of goalscoring chances, at least until the 59th minute...
Again El Ghazi was involved, as his cross looped into the air and looked like a simple catch for Roos, but McGinn gambled and just beat the keeper to the ball to head Villa into a two-goal lead. Cue more celebrations!
The Villans didn't hold off after scoring their second, and came forward again, with Grealish firing wide from the edge of the area. At the other end, Mason Bennett couldn't quite find Marriott with a low cross.
It was to be Bennett's last action, with Martyn Waghorn coming on in his place, as Lampard rolled the dice with just over 20 minutes remaining. Just a minute after the forward's introduction, there was a moment of promise for Derby, as Jayden Bogle surged forward and hit the side-netting.
They registered another attempt shortly after, after some good build-up play, but Mount pulled his strike well wide from 20 yards. With the next goal looking increasingly crucial, Marriott then had Derby's best effort of the afternoon until that point, turning and volleying just wide.
The Rams were turning up the heat on the Villa defence, with a corner causing chaos inside the area, and eventually the pressure paid off. A cross was knocked down into the path of Marriott, who made no mistake in finding the corner and setting up a nervous finale at Wembley.
Despite Derby's best efforts in the closing stages, it was to be Villa's day. The Villans are going up, and the party is only just getting started.
Aston Villa: Steer, Taylor, Tuanzebe, Elmohamady, Mings (Hause 86'), McGinn, Grealish, Hourihane, Abraham, Adomah (Green 73'), El Ghazi.
Subs not used: Kalinic, Whelan, Lansbury, Jedinak, Kodjia.
Booked: El Ghazi, Hourihane
Derby County: Roos, Bogle, Keogh, Tomori, Cole, Mount, Johnson, Wilson, Huddlestone (Marriott 62'), Lawrence (Jozefzoon 73'), Bennett (Waghorn 69').
Subs not used: Carson, Knight, Macdonald, Evans.
Booked: Tomori, Bennett