Match ends, Hull City 0, Derby County 2.
Hull City set up a Championship play-off final against Sheffield Wednesday despite losing at home to Derby County in a thrilling second leg.
Trailing 3-0 from the first leg, Derby took an early lead when Johnny Russell poked in before Andrew Robertson's own goal doubled the advantage.
Chris Martin almost levelled the tie after the break but his curling effort was palmed away by Eldin Jakupovic.
But Hull held off relentless pressure to reach the final on 28 May.
Victory for Steve Bruce's men at Wembley will see them return to the Premier League at the first time of asking after relegation last season - a feat also achieved by champions Burnley.
Derby will spend a ninth straight season in the Championship.
Every team in the history of the Football League play-offs who had gone into the second leg of a semi-final tie with a three-goal lead had gone on to reach the final.
But Hull looked nervous from the kick-off in front of a sell-out home crowd, and the tension only increased when Scotland striker Russell was given too much room in the box to stab home from three yards.
The visitors piled on the pressure as Russell's free-kick flew just wide and Craig Bryson fizzed a long-range effort inches past the post.
The Rams went 2-0 up deservedly when left-back Robertson sliced the ball into his own net under pressure from Martin to leave the home supporters stunned.
Hull, who struggled to create anything clear cut throughout the match, looked more solid in the second half.
However, Derby midfielder Bryson should have done better when he failed to connect properly from a few yards out, before Martin's bending strike from the edge of the box produced a fine save from Jakupovic.
For the Rams, it is a third season in a row in which they have failed to reach the top flight from a promising position.
Under Steve McClaren's management, they suffered a last-minute defeat against 10-man Queens Park Rangers in the 2013-14 Championship play-off final, then slid from first to eighth in the final two-and-a-half months of last season.
Paul Clement strengthened the squad significantly before this campaign, bringing in former England players Scott Carson and Darren Bent on free transfers and making several multi-million pound signings - including Tom Ince, Bradley Johnson and Andreas Weimann.
Clement's sacking in February, with the club just five points off top spot in the Championship, ultimately did not affect their league form with the Rams remaining fifth for all-but two weeks under Darren Wassall.
But with Wassall's future uncertain and the wait for their first Premier League campaign since 2007-08 continuing, another summer of change both on and off the field at Derby could be on the cards.
Hull City boss Steve Bruce:
"We never do things easy but we have to give credit to Derby who on the night put up a hell of a show.
"We had to show resilience which saw us through in the end. Over the two legs we have just shaded them.
"Talk about two extremes. It was a nervous, edgy night. We had to defend for an hour and we have done that to go through."
Steve Harper, former Hull goalkeeper, on BSports Radio 5 live sports extra
"Derby came here and gave it a real go. We thought Andrew Robertson's injury-time goal on Saturday would be the tipping point and it's proved to be just that.
"Hull City were a little bit lucky tonight because they were poor. They were flat. Derby were excellent. They played at a high tempo, but ultimately ran out of steam late on.
"Hull's performance on Saturday got them through. For Derby, it was too little, too late."
Match ends, Hull City 0, Derby County 2.
Second Half ends, Hull City 0, Derby County 2.
Foul by Chris Martin (Derby County).
Moses Odubajo (Hull City) wins a free kick in the defensive half.
Substitution, Hull City. Harry Maguire replaces Robert Snodgrass.
Attempt blocked. Will Hughes (Derby County) left footed shot from the left side of the box is blocked.
Corner, Derby County. Conceded by Michael Dawson.
Substitution, Hull City. Sam Clucas replaces Mohamed Diamé.
Substitution, Derby County. Abdoul Camara replaces Markus Olsson.
Attempt saved. Robert Snodgrass (Hull City) left footed shot from a difficult angle and long range on the right is saved in the top right corner.
Jeff Hendrick (Derby County) is shown the yellow card for a bad foul.
Foul by Jeff Hendrick (Derby County).
David Meyler (Hull City) wins a free kick on the right wing.
Foul by Jeff Hendrick (Derby County).
Moses Odubajo (Hull City) wins a free kick on the right wing.
Foul by Craig Bryson (Derby County).
Abel Hernández (Hull City) wins a free kick in the attacking half.
Substitution, Derby County. Darren Bent replaces Johnny Russell.
Attempt missed. Curtis Davies (Hull City) header from the centre of the box is too high. Assisted by Robert Snodgrass with a cross following a corner.
Corner, Hull City. Conceded by Markus Olsson.
Corner, Hull City. Conceded by Jason Shackell.
Attempt missed. Tom Ince (Derby County) left footed shot from outside the box is high and wide to the left. Assisted by Will Hughes.
Attempt saved. Chris Martin (Derby County) right footed shot from the left side of the box is saved in the top right corner. Assisted by Jason Shackell.
Corner, Derby County. Conceded by Michael Dawson.
Attempt missed. Will Hughes (Derby County) left footed shot from outside the box is high and wide to the left. Assisted by Craig Bryson.
Attempt blocked. Tom Ince (Derby County) left footed shot from outside the box is blocked. Assisted by Jeff Hendrick.
Attempt missed. Mohamed Diamé (Hull City) left footed shot from outside the box misses to the right. Assisted by Jake Livermore with a headed pass.
Substitution, Derby County. Tom Ince replaces Andreas Weimann because of an injury.
Jason Shackell (Derby County) wins a free kick in the defensive half.
Foul by Abel Hernández (Hull City).
Attempt missed. Abel Hernández (Hull City) left footed shot from the left side of the box misses to the right. Assisted by Andrew Robertson.
Jason Shackell (Derby County) is shown the yellow card.
Attempt blocked. Robert Snodgrass (Hull City) left footed shot from outside the box is blocked.
Foul by Will Hughes (Derby County).
Moses Odubajo (Hull City) wins a free kick in the attacking half.
Attempt blocked. Abel Hernández (Hull City) left footed shot from outside the box is blocked. Assisted by Moses Odubajo.
Substitution, Hull City. David Meyler replaces Tom Huddlestone.
Attempt blocked. Chris Martin (Derby County) right footed shot from outside the box is blocked.
Moses Odubajo (Hull City) is shown the yellow card for a bad foul.
Will Hughes (Derby County) wins a free kick in the attacking half.