Oxford Utd 2-0 Swindon
Swindon's unbeaten league record in 2012 was brought to an abrupt end by local rivals Oxford, who played for 80 minutes with 10 men.
U's striker James Constable saw red for a challenge on Joe Devera, but two quick goals soon after stunned the League Two leaders.
Asa Hall stabbed home from close range before Oli Johnson found the end of Lee Holmes' cross to double their lead.
Swindon dominated possession in the second half but the U's held firm.
It was the first time the two sides had met at the Kassam Stadium in the league since its opening in 2001, and their fierce rivalry was evident both on and off the pitch.
Home tickets for the clash sold out well before the turn of the year, and the 11,825 capacity crowd tormented each other throughout the game.
The on-field drama started after just 10 minutes, when Constable - Oxford's top scorer last season and a Swindon target in the January transfer window - was shown red for an apparent elbow on Devera.
Despite their numerical advantage, Swindon found themselves two goals down in as many minutes.
Hall managed to stab the ball past keeper Wes Foderingham after Holmes' free-kick and the midfielder was on hand again to whip in a pinpoint cross for Johnson to easily knock home.
Swindon eventually found their stride but U's keeper Ryan Clarke pulled off a string of fine saves from Ronan Murray and Matt Ritchie - who also smashed an effort off the post before being booked for an altercation with a ball boy.
The second half was less eventful and the Robins will be left to rue several missed chances that could have brought them back into the contest.
Luke Rooney shot straight at Clarke before hitting the side netting moments later, while Paul Benson was also denied by the U's shot-stopper and Ritchie carelessly spurned a free-kick well wide of goal.
Substitute Billy Bodin saw his effort from six yards out go close but it was the hosts who earned the three points - and bragging rights - over their local foes.
VIEWS FROM THE DRESSING ROOM
Oxford United manager Chris Wilder tells BBC Radio Oxford:
"It was a massive effort and full credit to Paolo Di Canio because he has built a good side (at Swindon) and they are heavily backed.
"It was a massive test and we've rode our luck at times, and we've been indebted to some magnificent goalkeeping, but we knew that was going to be the case, especially when you have 10 men who are not regulars in your side.
"i'm delighted for our supporters because they do get frustrated, like I do and I would like us to be a lot closer to Swindon who in my mind will go up. We've still got loads to play for and this will be important."
- 01 Clarke
- 02 Batt
- 03 Tonkin Booked
- 05 Duberry
- 16 Whing
- 14 Hall Booked
- 24 Wilson (Chapman - 32' )
- 27 Holmes Booked (Davis - 69' )
- 09 Constable Dismissed
- 19 Johnson Booked (Pittman - 85' Booked )
- 23 Rendell Booked
- 21 Brown
- 22 Worley
- 07 Chapman
- 26 Davis
- 11 Pittman
- 35 Foderingham
- 05 Devera
- 07 Caddis
- 27 Cibocchi (Smith - 20' )
- 08 Ferry
- 10 Ritchie Booked
- 12 McCormack
- 13 Risser
- 19 Rooney
- 09 Benson
- 34 Murray (Bodin - 64' )
- 16 Cox
- 24 Smith (Cox - 58' )
- 31 Bodin
- 17 Connell
- 23 De Vita
Live Text Commentary
Full Time The referee signals the end of the game.90:00 +4:50
Inswinging corner taken right-footed by Luke Rooney, Jon-Paul Pittman manages to make a clearance.90:00 +4:41
Billy Bodin takes a shot. Blocked by Andrew Whing.88:50
Alan McCormack takes the free kick.88:50 Booking
Booking Scott Rendell receives a caution.88:39
Jon-Paul Pittman concedes a free kick for a foul on Alan McCormack.87:56
The ball is crossed by Alan McCormack, Ryan Clarke makes a save.84:43
Direct free kick taken by Michael Duberry.84:43 Substitution
Substitution Jon-Paul Pittman replaces Oli Johnson.84:43
Simon Ferry challenges Oli Johnson unfairly and gives away a free kick.84:01 Booking
Booking Booking for Jon-Paul Pittman for unsporting behaviour.80:08
Inswinging corner taken right-footed by Luke Rooney from the left by-line.80:02
The ball is sent over by Luke Rooney, Oli Johnson gets a block in.78:55
Luke Rooney takes a shot. Michael Duberry gets a block in.77:18
Free kick crossed by Matt Ritchie.77:18 Booking
Booking Anthony Tonkin shown a yellow card.75:55
Foul by Anthony Tonkin on Matt Ritchie, free kick awarded.73:48
Direct free kick taken by Alan McCormack.73:48 Booking
Booking Oli Johnson is cautioned by the ref for unsporting behaviour.73:33
Free kick awarded for an unfair challenge on Luke Rooney by Oli Johnson.
The free kick is swung in left-footed by Matt Ritchie, save by Ryan Clarke.69:52 Booking
Booking Asa Hall shown a yellow card.69:32
Unfair challenge on Simon Ferry by Liam Davis results in a free kick.68:19 Substitution
Substitution Lee Holmes leaves the field to be replaced by Liam Davis.66:28
Free kick crossed left-footed by Matt Ritchie, save by Ryan Clarke.66:28 Booking
Booking The referee cautions Lee Holmes for unsporting behaviour.66:11
Foul by Lee Holmes on Paul Caddis, free kick awarded.63:21
Damian Batt restarts play with the free kick.63:21 Substitution
Substitution Billy Bodin is brought on as a substitute for Ronan Murray.63:21
Foul by Simon Ferry on Adam Chapman, free kick awarded.62:51
Simon Ferry produces a curled left-footed shot from 25 yards. Ryan Clarke makes a save.61:43
Paul Caddis crosses the ball, Paul Benson takes a shot. Ryan Clarke makes a save.60:45
Short corner taken by Matt Ritchie.57:14 Substitution
Substitution Lee Cox joins the action as a substitute, replacing Jonathan Smith.56:15
Corner taken left-footed by Matt Ritchie from the right by-line, Paul Benson takes a shot. Save by Damian Batt.54:45
Luke Rooney produces a left-footed shot from deep inside the penalty box which goes wide of the left-hand post.54:15
Scott Rendell is flagged offside by the assistant referee. Alan McCormack restarts play with the free kick.52:41
Luke Rooney takes a shot. Save by Ryan Clarke.51:35
Foul by Lee Holmes on Paul Caddis, free kick awarded. Paul Caddis restarts play with the free kick.49:44
Shot on goal by Alan McCormack from long range goes harmlessly over the target.48:42
Matt Ritchie challenges Lee Holmes unfairly and gives away a free kick. Free kick taken by Anthony Tonkin.47:23
Scott Rendell is caught offside. Alan McCormack takes the free kick.46:12
Paul Caddis sends in a cross, Ryan Clarke makes a save.45:01
The second half begins.45:00 +5:03 Half time
Half Time The first half comes to an end.45:00 +2:53
Paul Caddis has an effort at goal from outside the area missing to the wide left of the goal.45:00 +0:24 Booking
Booking Caution for Matt Ritchie.42:09
A cross is delivered by Paul Caddis, Jonathan Smith takes a shot. Save by Ryan Clarke.41:19
A cross is delivered by Damian Batt.38:34
Free kick awarded for a foul by Ronan Murray on Michael Duberry. Ryan Clarke takes the free kick.36:24
Ronan Murray sends in a cross.33:03
The ball is swung over by Luke Rooney, Header on goal by Paul Benson from inside the box goes harmlessly over the target.32:31
Matt Ritchie has an effort at goal from just outside the box hitting the post.31:35 Substitution
Substitution Adam Chapman is brought on as a substitute for Mark Wilson.30:02
Lee Holmes has an effort at goal from long range that misses to the right of the goal.29:00
Paul Caddis delivers the ball, save made by Ryan Clarke.26:18
Effort on goal by Ronan Murray from a long way out goes over the bar.25:59
Free kick awarded for an unfair challenge on Luke Rooney by Damian Batt. Direct free kick taken by Alan McCormack.25:17
Ronan Murray takes a shot. Save by Ryan Clarke.24:45
Ronan Murray fouled by Damian Batt, the ref awards a free kick. Alan McCormack restarts play with the free kick.21:38
A cross is delivered by Matt Ritchie, Header from deep inside the area by Jonathan Smith goes harmlessly over the crossbar.21:02
Short corner taken by Matt Ritchie.20:31
Mark Wilson challenges Oliver Risser unfairly and gives away a free kick. Strike on goal comes in from Matt Ritchie from the free kick, Ryan Clarke makes a save.19:23 Substitution
Substitution Jonathan Smith joins the action as a substitute, replacing Alessandro Cibocchi.18:53
Shot from long distance by Alessandro Cibocchi goes wide of the left-hand upright.18:05
Luke Rooney decides to take the corner short.17:04
Lee Holmes provided the assist for the goal.17:04 Goal scored
Goal! - Oli Johnson - Oxford 2 - 0 Swindon A goal is scored by Oli Johnson from inside the area low into the middle of the goal. Oxford Utd 2-0 Swindon.17:03
Lee Holmes crosses the ball,15:22
The assist for the goal came from Lee Holmes.15:22 Goal scored
Goal! - Asa Hall - Oxford 1 - 0 Swindon Asa Hall finds the back of the net with a goal from close range to the bottom left corner of the goal. Oxford Utd 1-0 Swindon.14:55
Oli Johnson fouled by Alessandro Cibocchi, the ref awards a free kick. The ball is crossed by Lee Holmes,14:19
Ronan Murray takes a shot. Save by Ryan Clarke.12:41
Ronan Murray is flagged offside by the assistant referee. Ryan Clarke takes the free kick.10:25
Wesley Foderingham restarts play with the free kick.10:25 Dismissal
Dismissal Red card for James Constable.10:16
Foul by James Constable on Joe Devera, free kick awarded.9:19
Damian Batt takes a shot. Wesley Foderingham makes a save.7:18
Scott Rendell is flagged offside by the assistant referee. Indirect free kick taken by Wesley Foderingham.6:41
Inswinging corner taken from the right by-line by Lee Holmes, clearance made by Joe Devera.6:09
Scott Rendell fouled by Alessandro Cibocchi, the ref awards a free kick. The free kick is delivered left-footed by Lee Holmes from right wing, Joe Devera manages to make a clearance.5:13
Corner taken right-footed by Luke Rooney, clearance made by Andrew Whing.4:06
Ronan Murray produces a right-footed shot from the edge of the box and misses to the left of the goal.2:33
Luke Rooney produces a right-footed shot from deep inside the area which goes wide of the left-hand post.0:22
Free kick awarded for a foul by Andrew Whing on Ronan Murray. Paul Caddis restarts play with the free kick.0:00
The ref blows the whistle to begin the match.
Live data and text provided by our data suppliers