Match ends, Exeter City 0, Port Vale 1.
Exeter City missed out on winning a first league title in 32 years as they lost at home to Port Vale, with Forest Green Rovers crowned League Two champions.
The Grecians, already promoted to League One, were a point clear of second-placed Forest Green going into the final day, but the defeat and Rovers' 2-2 draw at Mansfield saw them lose out on the title on goal difference.
Vale took the lead against the run of play when James Wilson calmly scored from inside the Exeter area.
Despite having 17 shots, Exeter only hit the target three times and failed to score for the first time since they drew 0-0 with Vale on 22 March.
The win sees Port Vale end the season in fifth place, two points off the automatic promotion places, and they will face Swindon Town over two legs in the play-off semi-finals.
Aidan Stone produced a superb save to keep out Matt Jay's 15th-minute header as Exeter had the better of the opening exchanges - but that proved to be as close as the Grecians would get to scoring.
Jay, Offrande Zanzala and Jake Caprice all went close for the hosts before Wilson controlled Ben Garrity's header back across goal and curled in the opener.
It was a similar story after the break as Jevani Brown, Zanzala and Caprice all failed to trouble Stone with efforts.
Wilson had a couple more chances for Vale while Jonathan Grounds curled a 90th-minute effort wide as Exeter tried everything - including sending goalkeeper Cameron Dawson up for a corner - to get what proved to be an elusive equaliser.
Despite the final day disappointment, Exeter will play in League One for the first time in 10 years next season as they ended a five-year spell of promotion near misses.
Exeter City manager Matt Taylor told BBC Radio Devon:
"I'm incredibly proud of what we've achieved this season.
"Today's a result we didn't want, we wanted more than a defeat, but we didn't quite play well enough on the day.
"We had all the ball and all the possession, but never really created anything, neither did the opposition really.
"One moment of quality from them in the first half, so fine margins, but I've got to find a way of getting this group of football players smiling again.
"They can't be down for too long and maybe when they get a beer inside them, maybe when they look at the league table and put it into context with what they've achieved this season they'll start smiling again."
Line-ups
Exeter
Formation 3-4-1-2
- 1Dawson
- 26Sweeney
- 6StubbsBooked at 45minsSubstituted forGroundsat 45'minutes
- 39Diabate
- 12Key
- 8Collins
- 14Dieng
- 2Caprice
- 7JaySubstituted forNombeat 56'minutes
- 20Brown
- 18ZanzalaSubstituted forAmondat 70'minutes
Substitutes
- 3Sparkes
- 10Nombe
- 11Amond
- 27Grounds
- 29Kite
- 31Coley
- 40Brown
Port Vale
Formation 3-4-1-2
- 26StoneBooked at 84mins
- 6Smith
- 16MartinBooked at 43mins
- 5Hall
- 2Gibbons
- 23Pett
- 8Garrity
- 15HusseySubstituted forBenningat 27'minutes
- 9WilsonBooked at 45minsSubstituted forHarrattat 90+2'minutes
- 29EdmondsonSubstituted forTaylorat 62'minutes
- 13Proctor
Substitutes
- 1Covolan Cauagnari
- 7Worrall
- 11Benning
- 17Taylor
- 19Amoo
- 21Robinson
- 24Harratt
- Referee:
- Tom Reeves
- Attendance:
- 8,147
Match Stats
- Possession
- Home61%
- Away39%
- Shots
- Home17
- Away6
- Shots on Target
- Home2
- Away2
- Corners
- Home12
- Away2
- Fouls
- Home11
- Away7
Live Text
Post update
Full Time
Second Half ends, Exeter City 0, Port Vale 1.
Post update
Foul by Jevani Brown (Exeter City).
Post update
Tom Pett (Port Vale) wins a free kick in the defensive half.
Post update
Corner, Exeter City. Conceded by Nathan Smith.
Post update
Corner, Exeter City. Conceded by James Gibbons.
Substitution
Substitution, Port Vale. Kian Harratt replaces James Wilson.
Post update
Attempt missed. Jonathan Grounds (Exeter City) left footed shot from outside the box misses to the left. Assisted by Pierce Sweeney.
Post update
Attempt blocked. Jake Caprice (Exeter City) right footed shot from the left side of the box is blocked. Assisted by Archie Collins.
Post update
Hand ball by Sam Nombe (Exeter City).
Post update
Attempt missed. James Wilson (Port Vale) left footed shot from the left side of the box is just a bit too high. Assisted by Jake Taylor.
Post update
Attempt saved. Jake Caprice (Exeter City) right footed shot from outside the box is saved in the centre of the goal. Assisted by Archie Collins.
Booking
Aidan Stone (Port Vale) is shown the yellow card.
Post update
Attempt missed. Jake Caprice (Exeter City) right footed shot from outside the box is too high. Assisted by Jevani Brown.
Post update
Foul by Sam Nombe (Exeter City).
Post update
Ben Garrity (Port Vale) wins a free kick in the defensive half.
Post update
Corner, Exeter City. Conceded by Tom Pett.
Post update
Corner, Exeter City. Conceded by Jake Taylor.
Post update
Attempt saved. James Wilson (Port Vale) left footed shot from the left side of the box is saved in the centre of the goal. Assisted by Jamie Proctor.
Post update
Attempt blocked. Sam Nombe (Exeter City) right footed shot from outside the box is blocked. Assisted by Jevani Brown.
Comments
Join the conversation
Great season for both clubs though. If you get this far you deserve it.
Tough tie with Swindle now - come on Vale !!
Also, congratulations to Exeter on an excellent season and deserved promotion, hope to join you in L1 next season.
The small boys chucking flares around on the pitch, if caught should have to re-do the burnt turf, idiots.