John-Joe O'Toole's penalty earned struggling Bristol Rovers a shock win over high-flying Oxford.

The U's were top of the table before the game, while Rovers were 21st and had failed to win in their last nine.

But it was the Pirates who took all three points thanks to O'Toole's second-half penalty, awarded after Jake Wright felled Eliot Richards.

Striker James Constable had two clear opportunities to score for the hosts, but both headers went wide.

Veteran Rovers keeper Steve Mildenhall also produced two good saved to deny Sean Rigg and Dave Kitson.

The result means Oxford slip to second in the table, while John Ward's side move up one place.

VIEW FROM THE DRESSING ROOM

Bristol Rovers manager John Ward told BBC Radio Bristol:

Post-match: Bristol Rovers boss Ward

"I'm delighted and I am really pleased for the players and the supporters.

"We have actually played as well as that in one or two games we haven't won and we just stayed in there.

"There are fine margins in games. We've had some go against us and today we have had a victory with a good performance.

"I'm pleased for the supporters because they've followed us and stuck with us. I'm pleased with my young players to so it's a good day for Bristol Rovers which hasn't surprised me because I think it's been coming."

Lineup, Bookings (4) & Substitutions (5)

Oxford United

  • 01 Clarke
  • 13 Hunt (Smalley - 78' )
  • 06 Wright Booked
  • 17 Rose
  • 04 Raynes
  • 19 Mullins
  • 15 Williams (Potter - 60' )
  • 16 Whing
  • 08 Kitson
  • 09 Constable
  • 07 Rigg

Substitutes

  • 10 Smalley
  • 11 Potter (Davies - 90' )
  • 14 Hall
  • 18 Davies
  • 21 Crocombe
  • 34 Bevans
  • 37 Ruffles

Bristol Rovers

  • 01 Mildenhall
  • 02 Smith
  • 30 Lockyer Booked
  • 24 Clarke
  • 22 Packwood
  • 06 Parkes
  • 33 Santos (Harrison - 94' )
  • 32 O'Toole Booked
  • 10 Richards
  • 19 Beardsley (Brunt - 86' )
  • 25 Clucas Booked

Substitutes

  • 15 Norburn
  • 16 Henshall
  • 17 Harrison
  • 20 Gough
  • 26 Brunt
  • 34 Keary
  • 35 Southway
Ref: Mark Brown
Att: 6,374

Match Stats

Shots

14 5

On target

4 4

Corners

5 7

Fouls

13 10

Live Text Commentary

Full time

Full Time Match ends, Oxford United 0, Bristol Rovers 1.

90:00 +6:51 Full time

Full Time Second Half ends, Oxford United 0, Bristol Rovers 1.

90:00 +6:15

Attempt saved. Danny Rose (Oxford United) with an attempt from the centre of the box is saved in the centre of the goal.

90:00 +3:28 Substitution

Substitution Substitution, Bristol Rovers. Ellis Harrison replaces Alefe Santos.

90:00 +2:04 Booking

Booking John-Joe O'Toole (Bristol Rovers) is shown the yellow card.

90:00 +2:00

Dean Smalley (Oxford United) wins a free kick on the right wing.

90:00 +1:55

Foul by John-Joe O'Toole (Bristol Rovers).

90:00 +0:29

Foul by James Constable (Oxford United).

90:00 +0:29

John-Joe O'Toole (Bristol Rovers) wins a free kick in the defensive half.

89:35

Attempt saved. Dave Kitson (Oxford United) right footed shot from the centre of the box is saved in the centre of the goal.

89:17 Substitution

Substitution Substitution, Oxford United. Scott Davies replaces Alfie Potter.

88:18 Booking

Booking Tom Lockyer (Bristol Rovers) is shown the yellow card.

88:12

Alfie Potter (Oxford United) wins a free kick in the defensive half.

88:12

Foul by Tom Lockyer (Bristol Rovers).

85:08 Substitution

Substitution Substitution, Bristol Rovers. Ryan Brunt replaces Chris Beardsley.

83:56

Attempt missed. Alfie Potter (Oxford United) right footed shot from the right side of the box misses to the right.

78:37 Booking

Booking Jake Wright (Oxford United) is shown the yellow card.

78:31

Foul by Jake Wright (Oxford United).

78:31

Seanan Clucas (Bristol Rovers) wins a free kick in the defensive half.

77:32 Substitution

Substitution Substitution, Oxford United. Dean Smalley replaces David Hunt.

76:38

Corner, Bristol Rovers. Conceded by Andrew Whing.

76:16

Corner, Bristol Rovers. Conceded by Ryan Clarke.

75:58

Attempt saved. Seanan Clucas (Bristol Rovers) left footed shot from the right side of the box is saved in the bottom right corner.

74:53

Foul by Andrew Whing (Oxford United).

74:53

John-Joe O'Toole (Bristol Rovers) wins a free kick on the left wing.

73:33

Attempt blocked. Danny Rose (Oxford United) right footed shot from outside the box is blocked.

72:30

Foul by David Hunt (Oxford United).

72:30

Ollie Clarke (Bristol Rovers) wins a free kick in the defensive half.

70:35 Goal scored

Goal! Goal! Oxford United 0, Bristol Rovers 1. John-Joe O'Toole (Bristol Rovers) converts the penalty with a right footed shot to the bottom left corner.

70:19

Penalty conceded by Jake Wright (Oxford United) after a foul in the penalty area.

70:19

Penalty Bristol Rovers. Seanan Clucas draws a foul in the penalty area.

67:37

Attempt missed. James Constable (Oxford United) header from very close range is too high.

65:14

Corner, Oxford United. Conceded by Steve Mildenhall.

64:33

Foul by Alefe Santos (Bristol Rovers).

64:33

Jake Wright (Oxford United) wins a free kick in the attacking half.

62:13

Foul by Will Packwood (Bristol Rovers).

62:13

Dave Kitson (Oxford United) wins a free kick in the attacking half.

60:44

Attempt missed. Sean Rigg (Oxford United) right footed shot from outside the box is high and wide to the left.

60:18

Foul by Chris Beardsley (Bristol Rovers).

60:18

Michael Raynes (Oxford United) wins a free kick on the left wing.

59:52 Substitution

Substitution Substitution, Oxford United. Alfie Potter replaces Ryan Williams.

56:32

Tom Parkes (Bristol Rovers) wins a free kick in the attacking half.

56:32

Foul by Dave Kitson (Oxford United).

55:52

Corner, Bristol Rovers. Conceded by Ryan Clarke.

55:29

Attempt saved. John-Joe O'Toole (Bristol Rovers) right footed shot from outside the box is saved in the bottom left corner.

53:39

Attempt missed. John-Joe O'Toole (Bristol Rovers) right footed shot from outside the box is too high from a direct free kick.

52:44

John-Joe O'Toole (Bristol Rovers) wins a free kick in the defensive half.

52:44

Foul by David Hunt (Oxford United).

52:15

Corner, Oxford United. Conceded by Tom Parkes.

51:58

Attempt blocked. James Constable (Oxford United) right footed shot from the left side of the box is blocked.

48:26

Michael Smith (Bristol Rovers) wins a free kick on the left wing.

48:26

Foul by Dave Kitson (Oxford United).

46:44

Corner, Oxford United. Conceded by Steve Mildenhall.

46:31

Attempt saved. James Constable (Oxford United) right footed shot from the centre of the box is saved in the bottom left corner.

45:00

Second Half begins Oxford United 0, Bristol Rovers 0.

45:00 +0:58 Half time

Half Time First Half ends, Oxford United 0, Bristol Rovers 0.

44:19

Attempt missed. Danny Rose (Oxford United) right footed shot from outside the box is too high from a direct free kick.

43:00

Dave Kitson (Oxford United) wins a free kick in the attacking half.

42:56

Foul by Ollie Clarke (Bristol Rovers).

40:35

Attempt missed. John Mullins (Oxford United) header from the centre of the box is close, but misses to the right.

39:56 Booking

Booking Seanan Clucas (Bristol Rovers) is shown the yellow card.

39:47

Foul by Seanan Clucas (Bristol Rovers).

39:47

Danny Rose (Oxford United) wins a free kick in the defensive half.

38:03

Attempt missed. James Constable (Oxford United) header from the left side of the six yard box is close, but misses to the left.

33:11

Corner, Bristol Rovers. Conceded by Jake Wright.

32:54

Corner, Bristol Rovers. Conceded by Jake Wright.

26:52

Corner, Bristol Rovers. Conceded by Michael Raynes.

22:28

Corner, Oxford United. Conceded by Michael Smith.

22:21

Attempt blocked. James Constable (Oxford United) right footed shot from outside the box is blocked.

20:08

Tom Lockyer (Bristol Rovers) wins a free kick in the defensive half.

20:08

Foul by David Hunt (Oxford United).

17:38

Foul by Chris Beardsley (Bristol Rovers).

17:38

(Oxford United) wins a free kick in the attacking half.

16:56

Corner, Bristol Rovers. Conceded by Ryan Clarke.

16:35

Attempt saved. Tom Lockyer (Bristol Rovers) right footed shot from outside the box is saved in the bottom right corner.

15:40

John-Joe O'Toole (Bristol Rovers) wins a free kick in the attacking half.

15:40

Foul by James Constable (Oxford United).

15:11

Attempt saved. Dave Kitson (Oxford United) header from the left side of the box is saved in the bottom right corner.

14:22

Foul by Chris Beardsley (Bristol Rovers).

14:22

Michael Raynes (Oxford United) wins a free kick in the attacking half.

10:42

Eliot Richards (Bristol Rovers) wins a free kick in the defensive half.

10:42

Foul by Michael Raynes (Oxford United).

9:30

Tom Parkes (Bristol Rovers) wins a free kick in the attacking half.

9:30

Foul by John Mullins (Oxford United).

9:08

Corner, Oxford United. Conceded by Will Packwood.

8:54

Attempt blocked. Dave Kitson (Oxford United) right footed shot from the right side of the box is blocked.

8:29

Foul by Will Packwood (Bristol Rovers).

8:29

Ryan Williams (Oxford United) wins a free kick in the defensive half.

1:30

Chris Beardsley (Bristol Rovers) wins a free kick on the right wing.

1:30

Foul by Ryan Williams (Oxford United).

0:00

First Half begins.

0:00

Lineups are announced and players are warming up.

Live data and text provided by our data suppliers