Match ends, Harrogate Town 5, Cambridge United 4.
Cambridge United missed a chance to win promotion from League Two after falling to a dramatic 5-4 defeat at Harrogate Town, despite fighting back from 3-0 down.
Brendan Kiernan's double - the second a penalty - and Mark Beck's tap-in had the Yorkshire side in control after 20 minutes, but Wes Hoolahan and Luke Hannant replied for the U's before the half-hour mark.
Kiernan, who before kick-off had only scored one league goal this season, then prodded in to complete his hat-trick and put Harrogate 4-2 ahead at the break.
But Cambridge fought back, as Paul Mullin netted his 30th league goal of the campaign to halve the arrears on 59 minutes and then levelled the game from the penalty spot with 16 minutes left after being hacked down by Jay Williams.
Town defender Kevin Lokko drilled in through a crowded penalty box with six minutes remaining to snuff out the visitors' hopes of a winner, meaning Cambridge will have to wait to end their 19-year absence from the third tier.
The U's could yet be promoted on Saturday if both Morecambe and Tranmere Rovers fail to win their respective games, while victory in their final game of the season at home to relegated Grimsby would also be enough for Mark Bonner's side.
Harrogate, who had made eight changes from their last league outing, now race Concord Rangers in the rearranged 2019-20 FA Trophy final on Monday (17:00 BST).
Cambridge United boss Mark Bonner told BBC Radio Cambridgeshire:
"It was a ridiculous game. With the stage of the season we are at and the consequences on the game, I'm really surprised it was like that.
"For us it was just way too open. We got counter-attacked way too easily in the first half.
"At 4-4 we were in good control of the game and looked a real threat, but then we conceded from a set play.
"We lost because we haven't defended properly."
- 29RobertsSubstituted forBurrellat 67'minutesBooked at 76mins
- 27WilliamsBooked at 73mins
- 25BurtonBooked at 19mins
- 6DrysdaleSubstituted forOkedinaat 45'minutes
- 3IredaleSubstituted forDunkat 45'minutes
- 4DigbySubstituted forTraceyat 89'minutes
- 44BoatengSubstituted forMayat 83'minutes
- Ollie Yates
- Shots on Target
Second Half ends, Harrogate Town 5, Cambridge United 4.
Attempt missed. Joe Ironside (Cambridge United) header from the centre of the box misses to the left. Assisted by Adam May with a cross.
Hand ball by Joe Ironside (Cambridge United).
Foul by Warren Burrell (Harrogate Town).
Joe Ironside (Cambridge United) wins a free kick on the right wing.
Foul by Mark Beck (Harrogate Town).
Adam May (Cambridge United) wins a free kick in the defensive half.
Substitution, Cambridge United. Shilow Tracey replaces Paul Digby.
Corner, Harrogate Town. Conceded by Harrison Dunk.
Attempt saved. Paul Mullin (Cambridge United) right footed shot from the left side of the box is saved in the bottom left corner. Assisted by Joe Ironside with a headed pass.
Goal! Harrogate Town 5, Cambridge United 4. Kevin Lokko (Harrogate Town) left footed shot from the centre of the box to the bottom left corner following a corner.
Attempt blocked. Ed Francis (Harrogate Town) left footed shot from outside the box is blocked.
Corner, Harrogate Town. Conceded by Callum Burton.
Attempt saved. George Thomson (Harrogate Town) right footed shot from a difficult angle on the right is saved in the bottom right corner. Assisted by Ed Francis.
Substitution, Cambridge United. Adam May replaces Hiram Boateng.
Dangerous play by Greg Taylor (Cambridge United).
Ryan Fallowfield (Harrogate Town) wins a free kick in the defensive half.
Corner, Cambridge United. Conceded by Brendan Kiernan.
Attempt blocked. William Hondermarck (Harrogate Town) right footed shot from outside the box is blocked. Assisted by Warren Burrell.
- The Lazarus Heist: A group of hackers cause mayhem in Hollywood for Sony Pictures Entertainment
- Processing grief: The Crowd Science team explores why it is a universal feeling