Leeds came from behind to defeat Bristol Rovers and clinch the second automatic promotion spot in League One on a tense and, at times, confusing afternoon at Elland Road.
Darryl Duffy's hooked strike shortly after half-time had put Rovers in front, but 10-man Leeds scored twice in four minutes to earn the victory that ended their three-season spell in the third tier of English football.
Jonathan Howson equalised with a stunning 20-yard strike minutes after coming off the bench, before Jermaine Beckford pounced on a loose clearance to convert from six yards.
Beckford is out of contract in the summer and widely expected to join a Premier League side, but his 31st goal of the season ensured the campaign ended in victorious fashion for the Yorkshire club.
Leeds will play Championship football next season after a season that saw them falter after Christmas, but grind out enough points to seal second place behind Norwich and avoid a third straight play-off campaign.
However, it was a far from straightforward afternoon for Leeds and their supporters - and at one point it looked to be heading towards disaster.
Max Gradel was sent off in the first half after an incident with Bristol Rovers defender Daniel Jones.
The Leeds player initially refused to leave the pitch and had to be restrained by his team-mates as he angrily pursued the referee.
Many supporters did not realise why Gradel had been dismissed and the atmosphere turned sour after Jones was only handed a yellow card.
There was an air of desperation after Duffy's goal for the visitors, but the 10 men of Leeds found the resolve to turn defeat into victory and secure the promotion their supporters so badly craved.
Before his dismissal Gradel played down the right and was allowed plenty of space, twice delivering dangerous balls across the face of the Rovers goal as Leeds started the match brightly.
The recalled Beckford was named as skipper in the absence of Richard Naylor, and posed a constant threat up front.
He could not quite connect with a ball over his shoulder, and also got into a dangerous position as Leeds looked to break on the counter-attack, but Bradley Johnson failed to pick him out.
Grayson soaked in Leeds celebrations
Beckford had the ball in the net on 34 minutes, but the effort was ruled out for offside, and it was in the aftermath of this that Gradel was sent off.
Rovers left-back Jones, on loan from Wolves, went down holding his face after a clash with the Leeds forward.
Replays also seemed to suggest that Gradel had stamped on his foot. An irate Jones had to be pulled away and calmed down by goalkeeper Mikkel Andersen as a lengthy melee broke out in the Rovers penalty area.
It was then the turn of Gradel to be restrained by Beckford after he was shown red, and a scuffle followed between the pair, with Michael Doyle intervening to try to calm the situation.
Stewards had to come onto the field as Gradel reluctantly made his way towards the tunnel.
Jones was booed every time he touched the ball for the rest of the game, but it was from his cross shortly after the restart that Rovers took the lead.
Jo Kuffour, who looked dangerous every time he had the chance to run at the Leeds defence, guided the cross back across goal from an extremely tight angle, and Duffy finished superbly after taking a touch to control the ball.
Leeds needed a strong response and got one through substitute Howson, who connected superbly with Becchio's lay-off to put a curling right-foot effort beyond Andersen.
That gave momentum back to the home side, and just minutes later a poor clearance from Andersen led to their second goal.
The keeper's throw was intercepted by Beckford, who fed the ball to Johnson.
His low cross was only partially cleared and Beckford pounced to smash home the loose ball, his goal prompting several supporters to invade the pitch in celebration.
Rovers' substitute Andy Williams shot wide from a decent position as they occasionally threatened an equaliser, but it was Leeds who came closer to changing the scoreline when Neil Collins headed against the post.
Live text and stats
Saturday, 8 May 2010
(HT 0-0)Leeds are promoted
21 Lowry (Howson 54)
04 Doyle yellow card
28 Gradel red card
09 Beckford (Snodgrass 90+2)
10 Becchio yellow card (Watt 87)
48 Jones yellow card
20 Reece (Williams 72)
10 Duffy yellow card (Richard 80)
Ref: SalisburyAtt: 38,234
Attempts on target
Attempts off target
90:00+4:54 The final whistle is blown by the referee.
Correction - 90:00+1:31 Robert Snodgrass takes the free kick.
Correction - 90:00+1:31 Substitution Robert Snodgrass joins the action as a substitute, replacing Jermaine Beckford.
Correction - 90:00+1:31 Chris Lines gives away a free kick for an unfair challenge on Sanchez Watt.
90:00+1:31 Bradley Johnson takes the direct free kick.
90:00+1:31 Substitution Jermaine Beckford goes off and Robert Snodgrass comes on.
90:00+1:31 Chris Lines concedes a free kick for a foul on Sanchez Watt.
90:00+0:37 Free kick awarded for a foul by Leigh Bromby on Stuart Campbell. Direct free kick taken by Mikkel Andersen.
90:00+0:10 Free kick awarded for an unfair challenge on Neil Kilkenny by Chris Lines. Free kick taken by Neil Kilkenny.
87:54 Daniel Jones sends in a cross.
86:57 Substitution Sanchez Watt is brought on as a substitute for Luciano Becchio.
85:21 The referee blows for offside against Byron Anthony. Free kick taken by Shane Higgs.
84:45 Andy Hughes concedes a free kick for a foul on Daniel Jones. Daniel Jones takes the free kick.
81:06 Free kick awarded for an unfair challenge on Daniel Jones by Jonathan Howson. Free kick crossed left-footed by Jeff Hughes,
save by Shane Higgs.
80:51 The ball is swung over by Andrew Williams.
79:18 Substitution Elliot Richard replaces Darryl Duffy.
78:28 Luciano Becchio fouled by Danny Coles, the ref awards a free kick. Free kick taken by Bradley Johnson.
75:00 Leigh Bromby has a headed effort at goal from close in that strikes the post.
74:20 Free kick awarded for a foul by Byron Anthony on Luciano Becchio. Neil Kilkenny takes the free kick.
73:39 Effort on goal by Andrew Williams from deep inside the penalty area misses to the right of the target.
72:59 Free kick awarded for a foul by Leigh Bromby on Jo Kuffour. Stuart Campbell restarts play with the free kick.
72:51 Jermaine Beckford sends in a cross, Danny Coles manages to make a clearance.
71:33 Free kick taken by Mikkel Andersen.
71:33 Substitution Andrew Williams replaces Charles Reece.
71:33 Handball by Luciano Becchio.
68:56 Effort from a long way out by Jeff Hughes goes wide left of the target.
67:39 Neil Kilkenny takes a outswinging corner to the near post, save by Mikkel Andersen.
67:12 Neil Kilkenny delivers the ball, Danny Coles makes a clearance.
66:34 Foul by Byron Anthony on Luciano Becchio, free kick awarded. Free kick taken by Neil Kilkenny.
65:45 The ball is swung over by Charles Reece, Shane Higgs makes a comfortable save.
63:54 Stuart Campbell takes a outswinging corner to the near post, clearance by Luciano Becchio.
62:07 GOAL - Jermaine Beckford:Leeds United 2 - 1 Bristol Rovers Jermaine Beckford fires in a goal from inside the six-yard box to the bottom left corner of the goal. Leeds 2-1 Bristol Rovers.
60:42 Jermaine Beckford gives away a free kick for an unfair challenge on Danny Coles. Direct free kick taken by Mikkel Andersen.
60:20 Jonathan Howson crosses the ball, Shot on goal by Bradley Johnson from just inside the area clears the crossbar.
58:45 The ball is crossed by Bradley Johnson.
58:15 Assist by Luciano Becchio.
58:15 GOAL - Jonathan Howson:Leeds United 1 - 1 Bristol Rovers Jonathan Howson scores a goal from just outside the area to the bottom right corner of the goal. Leeds 1-1 Bristol Rovers.
57:24 Free kick awarded for a foul by Jeff Hughes on Andy Hughes. Direct free kick taken by Neil Kilkenny.
56:51 Jermaine Beckford crosses the ball, comfortable save by Mikkel Andersen.
56:35 Jermaine Beckford crosses the ball, clearance by Danny Coles.
55:50 A cross is delivered by Neil Kilkenny.
53:19 Shane Higgs takes the direct free kick.
53:19 Substitution Jonathan Howson on for Shane Lowry.
53:19 Jeff Hughes gives away a free kick for an unfair challenge on Andy Hughes.
49:56 Bradley Johnson has an effort at goal from 20 yards. Danny Coles gets a block in.
48:04 Mikkel Andersen restarts play with the free kick.
48:04 Booking Luciano Becchio goes into the book.
47:41 Luciano Becchio concedes a free kick for a foul on Mikkel Andersen.
47:02 Assist by Jo Kuffour.
47:02 GOAL - Darryl Duffy:Leeds United 0 - 1 Bristol Rovers Darryl Duffy finds the net with a goal from close in low into the middle of the goal. Leeds 0-1 Bristol Rovers.
46:05 Centre by Daniel Jones.
45:01 The second half begins.
45:00+5:25 The referee blows for half time.
45:00+5:15 Darryl Duffy delivers the ball, Neill Collins manages to make a clearance.
45:00+3:44 Mikkel Andersen restarts play with the free kick.
45:00+3:44 Booking Michael Doyle goes into the book.
45:00+3:13 Free kick awarded for an unfair challenge on Darryl Duffy by Michael Doyle.
45:00+2:42 Corner taken right-footed by Neil Kilkenny from the left by-line, Charles Reece makes a clearance.
45:00+2:19 The ball is crossed by Carl Regan, save by Shane Higgs.
45:00+0:43 Corner taken by Neil Kilkenny.
45:00+0:19 Centre by Charles Reece.
43:42 Booking Darryl Duffy is shown a yellow card for unsporting behaviour.
Correction - 43:00 The ball is sent over by Charles Reece, free kick awarded for a foul by Darryl Duffy on Shane Higgs. Direct free kick taken
by Shane Higgs.
43:00 The ball is swung over by Charles Reece, comfortable save by Shane Higgs.
41:17 Jermaine Beckford challenges Byron Anthony unfairly and gives away a free kick. Mikkel Andersen takes the direct free kick.
40:28 Corner taken left-footed by Jeff Hughes from the left by-line, Byron Anthony has a headed effort at goal from deep inside
the area missing to the right of the goal.
39:06 Danny Coles gives away a free kick for an unfair challenge on Luciano Becchio. Direct free kick taken by Neill Collins.
38:37 Bradley Johnson has an effort at goal from 20 yards. Save by Mikkel Andersen.
37:45 Free kick awarded for an unfair challenge on Daniel Jones by Michael Doyle. Jeff Hughes takes the direct free kick.
37:14 Daniel Jones sends in a cross, clearance by Leigh Bromby.
36:08 Free kick awarded for an unfair challenge on Carl Regan by Jermaine Beckford. Direct free kick taken by Mikkel Andersen.
35:47 Indirect free kick taken by Mikkel Andersen.
34:50 Booking Daniel Jones goes into the book.
33:10 Sent off Max Gradel receives a red card for violent conduct.
31:54 Jermaine Beckford is ruled offside.
29:09 Byron Anthony concedes a free kick for a foul on Luciano Becchio. Neil Kilkenny takes the free kick.
28:41 Andy Hughes fouled by Jo Kuffour, the ref awards a free kick. Direct free kick taken by Shane Higgs.
27:47 Outswinging corner taken right-footed by Stuart Campbell, Leigh Bromby manages to make a clearance.
27:06 Unfair challenge on Darryl Duffy by Shane Lowry results in a free kick. Stuart Campbell restarts play with the free kick.
24:45 Max Gradel sends in a cross.
22:52 Andy Hughes delivers the ball, comfortable save by Mikkel Andersen.
21:51 Neil Kilkenny gives away a free kick for an unfair challenge on Chris Lines. Stuart Campbell restarts play with the free kick.
20:48 Danny Coles challenges Luciano Becchio unfairly and gives away a free kick. The free kick is swung in right-footed by Max
20:08 Unfair challenge on Bradley Johnson by Charles Reece results in a free kick. Shane Lowry takes the direct free kick.
18:38 Jermaine Beckford challenges Danny Coles unfairly and gives away a free kick. Stuart Campbell crosses the ball from the free
kick right-footed from right wing, clearance by Bradley Johnson.
18:20 Charles Reece takes a shot from 20 yards. Leigh Bromby gets a block in.
17:28 Outswinging corner taken by Stuart Campbell from the right by-line, clearance by Leigh Bromby.
16:16 Free kick awarded for an unfair challenge on Michael Doyle by Darryl Duffy. Free kick taken by Neill Collins.
15:51 Foul by Michael Doyle on Chris Lines, free kick awarded. Free kick taken by Mikkel Andersen.
15:09 Shot by Max Gradel from deep inside the penalty area misses to the left of the goal.
10:24 Unfair challenge on Jermaine Beckford by Chris Lines results in a free kick. Bradley Johnson has a direct shot on goal from
the free kick.
10:03 The ball is sent over by Andy Hughes, Carl Regan makes a clearance.
9:55 Bradley Johnson produces a cross.
6:58 Andy Hughes delivers the ball.
6:05 Jeff Hughes fouled by Andy Hughes, the ref awards a free kick. Direct free kick taken by Jeff Hughes.
4:12 The referee blows for offside against Jermaine Beckford. Mikkel Andersen takes the indirect free kick.
2:33 Daniel Jones challenges Max Gradel unfairly and gives away a free kick. Free kick crossed right-footed by Neil Kilkenny from
2:09 The ball is delivered by Bradley Johnson.
0:00 The referee gets the game started.
Live text and data provided by The Press Association.
This page is best viewed in an up-to-date web browser with style sheets (CSS) enabled. While you will be able to view the content of this page in your current browser, you will not be able to get the full visual experience. Please consider upgrading your browser software or enabling style sheets (CSS) if you are able to do so.