Match ends, Coventry City 3, Exeter City 1.
Coventry City sealed an immediate return to League One with a comprehensive win over Exeter in the League Two play-off final at Wembley.
They took a deserved lead after half-time when centre-back Jordan Willis bent a shot into the far corner.
Fellow academy product Jordan Shipley made it 2-0 when his first-time strike deflected over goalkeeper Christy Pym.
Jack Grimmer guided a stunning third into the top corner, with Kyle Edwards netting Exeter's consolation.
However, it could not prevent a second successive play-off final defeat for Paul Tisdale's side.
While Coventry's 28-goal top scorer Marc McNulty did not get on the scoresheet, he was influential throughout, threatening from long range in the first half and later providing two assists.
Exeter's Ryan Harley and Matt Jay forced Sky Blues goalkeeper Lee Burge into routine saves from outside the box, while Tom Bayliss was thwarted by Pym after a mazy run.
The sky's the limit for the Sky Blues?
Coventry had been a top-flight team for 34 years until they were relegated from the Premier League in 2001, and it had all been downhill since then.
Two more relegations, off-field turmoil, a temporary relocation to play home matches in Northampton and protests towards owners Sisu have followed, but the tide appeared to have started turning when they lifted the Checkatrade Trophy at Wembley in April 2017.
Mark Robins, in his second spell in charge, took them to a sixth-placed finish in League Two - the first time they have finished that high in any division since 1970, and they now have a first promotion in 51 years.
For Robins, it is his first promotion during a managerial career spanning more than a decade.
With seven academy players in their squad for the final, and approximately 40,000 fans watching on at Wembley, the future certainly looks brighter for the Sky Blues.
End of an era for Exeter?
After Arsene Wenger's departure from Arsenal, Exeter boss Tisdale is comfortably the longest-serving manager in England's top four divisions - having arrived at St James Park in June 2006.
He spoke about the importance of continuity after their play-off final defeat by Blackpool last year, but after having notice served on his contract by the club's fans, he is being linked with the vacant MK Dons job.
With director of football Steve Perryman retiring this summer, is this the last time Tisdale will take charge of Exeter?
If so, his meticulous nature and ability to bring through youngsters will be almost impossible to replace at the Devon side.
Post-match reaction
Coventry City boss Mark Robins told BBC Coventry and Warwickshire:
"There's been so much hard work this year and the focus has been there. When we qualified for the play-offs, I said I fancied us and thankfully now I can say I was right.
"It wasn't just blind faith, I think we're growing and a team has to do that. Watching the play-off games prior to this one gave us an insight.
"We knew it would be a game of two halves because of the weather and it had a significant impact on the two play-off finals before as well as today.
"We knew we had to try to control the game and there were a lot of questions asked by both teams."
Exeter manager Paul Tisdale told BBC Radio Devon:
"I'm terribly disappointed. It was a big day and it wasn't our best performance.
"We had two very good goals against us out of the three, so I'm disappointed, but also trying to be very proud because I am of the season we've had, the players and the club generally.
"It's a hard ask but I'm proud of what we've done.
"The first half was a bit of a stalemate, but I'm disappointed we conceded the second goal so quickly. It was a real killer for us."
Line-ups
Coventry
Formation 4-4-2
- 1Burge
- 2Grimmer
- 4Willis
- 15Hyam
- 3Stokes
- 30Bayliss
- 6Kelly
- 8Doyle
- 26ShipleySubstituted forReidat 73'minutes
- 10McNultySubstituted forPonticelliat 82'minutes
- 9BiamouSubstituted forClarke-Harrisat 51'minutes
Substitutes
- 5McDonald
- 13O'Brien
- 17Maguire-Drew
- 18Clarke-Harris
- 32Reid
- 38Ponticelli
- 39Thompson
Exeter
Formation 4-4-1-1
- 1Pym
- 2Sweeney
- 38Storey
- 15Moore-Taylor
- 3WoodmanSubstituted forJamesat 63'minutes
- 25Taylor
- 44BoatengSubstituted forEdwardsat 73'minutes
- 6Tillson
- 21MoxeySubstituted forJayat 63'minutes
- 7Harley
- 11Stockley
Substitutes
- 4James
- 5Archibald-Henville
- 8Simpson
- 12Jones
- 20Jay
- 22Wilson
- 28Edwards
- Referee:
- David Webb
- Attendance:
- 50,196
Match Stats
- Possession
- Home44%
- Away56%
- Shots
- Home14
- Away13
- Shots on Target
- Home8
- Away3
- Corners
- Home5
- Away4
- Fouls
- Home6
- Away5
Live Text
-
Post update
-
Full Time
Second Half ends, Coventry City 3, Exeter City 1.
-
Post update
Attempt missed. Jayden Stockley (Exeter City) right footed shot from the centre of the box is close, but misses to the left. Assisted by Ryan Harley.
-
Post update
Foul by Ryan Harley (Exeter City).
-
Post update
Liam Kelly (Coventry City) wins a free kick in the attacking half.
-
Goal!
Goal! Coventry City 3, Exeter City 1. Kyle Edwards (Exeter City) right footed shot from the left side of the box to the bottom right corner. Assisted by Matt Jay.
-
Post update
Attempt missed. Jonson Clarke-Harris (Coventry City) left footed shot from outside the box misses to the left. Assisted by Tom Bayliss.
-
Post update
Hand ball by Jonson Clarke-Harris (Coventry City).
-
Post update
Attempt missed. Jordan Storey (Exeter City) header from the centre of the box is close, but misses to the left. Assisted by Matt Jay.
-
Post update
Attempt missed. Jayden Stockley (Exeter City) right footed shot from outside the box is high and wide to the right.
-
Substitution
Substitution, Coventry City. Jordan Ponticelli replaces Marc McNulty.
-
Post update
Matt Jay (Exeter City) hits the left post with a right footed shot from outside the box. Assisted by Kyle Edwards.
-
Post update
Offside, Coventry City. Kyel Reid tries a through ball, but Chris Stokes is caught offside.
-
Post update
Corner, Coventry City. Conceded by Christy Pym.
-
Post update
Attempt saved. Tom Bayliss (Coventry City) right footed shot from the left side of the box is saved in the bottom right corner. Assisted by Jonson Clarke-Harris.
-
Post update
Attempt blocked. Jake Taylor (Exeter City) right footed shot from outside the box is blocked. Assisted by Pierce Sweeney.
-
Post update
Corner, Exeter City. Conceded by Lee Burge.
-
Post update
Attempt saved. Ryan Harley (Exeter City) right footed shot from outside the box is saved in the bottom right corner. Assisted by Jordan Tillson.
-
Post update
Attempt blocked. Kyle Edwards (Exeter City) right footed shot from outside the box is blocked. Assisted by Jayden Stockley.
-
Substitution
Substitution, Exeter City. Kyle Edwards replaces Hiram Boateng.