Aston Villa have booked their place in the Championship playoff final courtesy of a goalless draw against Middlesbrough in the second leg of their semi-final at Villa Park this evening.
Villa went into the match defending a 1-0 lead from Saturday's first leg at the Riverside, and they held off a late Middlesbrough fightback to set up a Wembley showdown with Fulham on May 26.
The hosts created many of the better chances throughout the course of the night, but Stewart Downing rattled the crossbar late on after Villa goalkeeper Sam Johnstone was controversially allowed to stay on the field following a handball outside his penalty area.
Boro will now spend a second season in the Championship, whereas Villa will take on Fulham in football's most lucrative match next Saturday as they look to return to the top flight after a two-year absence.
The match got off to a scrappy start with clear chances difficult to come by, and the closest either side came in the opening stages was when Conor Hourihane charged down Darren Randolph's relaxed clearance, only for the rebound to bounce to safety.
The first shot on target of the match came after 18 minutes when Albert Adomah cut inside from the left flank before nudging the ball to Hourihane, but the midfielder's effort was tame and easy for Randolph to gather.
Both sides were struggling to provide a telling piece of quality in the final third during a fiercely-contested first half, and George Friend's perfectly-timed last-ditch challenge to deny Hourihane what looked like a certain goal 11 minutes before half time was typical of the opening 45 minutes.
It was industry rather than inspiration which was the story of that first half, although Villa did almost break the deadlock in the 38th minute when Lewis Grabban nodded the ball to James Chester from a corner, only for the defender to drag his effort wide after a good first touch.
Neither goalkeeper was seriously troubled before half time, though, and that continued in the opening stages of the second half with Muhamed Besic dragging his shot wide of the target when presented with Middlesbrough's best chance of the opening 85 minutes from outside the area.
Indeed, it wasn't until the hour mark that either side were able to create a really clear opening when a rare moment of quality from Villa saw Jack Grealish and Adomah combine to find Grabban inside the box, but the striker's effort was straight at Randolph from point-blank range.
Suddenly the home side were enjoying a growing level of control over the game, and Grabban almost broke the deadlock with a much more difficult effort 10 minutes later when his rising drive from range was tipped over the crossbar by Randolph.
Adomah then saw a long-range strike of his own deflected over the crossbar with Randolph rooted to the spot, but the Middlesbrough keeper was at full stretch shortly afterwards when he tipped a fine curling effort from Grealish wide before it could nestle into the top corner.
Villa continued to look by far the more likely to break the deadlock, but Middlesbrough also knew that they only needed one goal to force extra time and the tension inside Villa Park grew again when another sight of goal went begging as Hourihane steered a tame effort straight at Randolph.
The visitors' onslaught finally arrived in the closing stages of the match, and Johnstone was fortunate to stay on the field with three minutes remaining when he handled a shot from Adama Traore outside the box after being caught out of position. Johnstone's deliberate action appeared to deny Boro a crucial goal, but referee Mike Dean deemed the offence worthy of only a yellow card.
There was almost further punishment from the resulting corner when Downing's powerful free kick flashed past Johnstone before he had time to react, but the crossbar came to Villa's rescue as the ball cannoned back off the woodwork.
Another half-chance fell the way of the visitors in stoppage time when the ball dropped kindly for Fabio, whose effort was blocked, but it was too little too late for Tony Pulis's side as they were condemned to another season in the second tier.
Villa, on the other hand, will be appearing in their first ever playoff final on May 26, when they will face Fulham at Wembley after the Cottagers came from behind to beat Derby County in the first semi-final.
ASTON VILLA (4-1-4-1): Johnstone; Bree, Chester, Terry, Hutton; Jedinak; Snodgrass, Hourihane (Whelan 85'), Grealish, Adomah (Bjarnason 91'); Grabban
MIDDLESBROUGH (4-3-3): Randolph; Shotton (Fabio 82'), Fry, Gibson, Friend; Howson (Gestede 73'), Clayton, Besic; Traore, Assombalonga (Bamford 68'), Downing