JOHN-JOE O'Toole denied Oxford United all three points with a late equaliser for Bristol Rovers in a windswept encounter.
The midfielder headed in six minutes from time at the Memorial Stadium to cancel out James Constable's first-half strike.
After leading for well over an hour, United will be disappointed not to have held on, but the point extended their unbeaten away run to 16 games and kept them in League Two's automatic promotion places.
Dave Kitson replaced Callum O'Dowda in the only change to United's XI from the midweek draw at Bury.
Both Ryan Williams and Michael Raynes, who were expected to return, missed out, but the big surprise saw Alfie Potter named on the bench after three months out with an ankle injury sustained in the reverse fixture against Rovers.
The hosts had worked hard to get the game on and although the pitch was heavy, it was playable.
With the showers not as heavy as forecast the game went ahead, but the main problem was a strong, gusty wind.
The conditions had a clear impact on the game, which made finding a teammate from even close range a difficult task at times.
United were playing into the wind in the first half, which meant they had few opportunities to get forward.
The emphasis was on quality of chances, rather than quantity, and they delivered with their first opening in the tenth minute.
Kitson got down the left and crossed for Smalley, who chested the ball to Constable. The striker had not scored in his previous 11 games, but looked full of confidence to lash the ball home from 12 yards.
It gave the visitors something to protect and their focus up to half-time was on restricting a Rovers side with the wind in their sails.
The Pirates failed to threaten until midway through the half, when Lee Brown's deflected free-kick flew just wide.
They had the ball in the net on the half hour mark when O'Toole steered in Kaid Mohamed's header. The celebrations were cut short by an offside flag, though.
Aside from a header steered wide by Deane Smalley, United struggled to get out of their half, but a dogged defensive display ensured they reached the break with the lead intact.
With the wind in their favour after the restart, United enjoyed far more of the ball.
Just before the hour they should have doubled their lead, when Constable seized on a mistake from Mark McChrystal.
The defender mis-timed his header, allowing United's No 9 to get in and round goalkeeper Steve Mildenhall. From out wide he crossed for Josh Ruffels, who blasted over right-footed.
Rovers almost punished the miss within minutes, but Ryan Clarke got down well to keep out Tom Lockyer's shot.
United's attacking threat grew more sporadic as the half went on and as the game went into the final quarter of an hour they looked to see out the game.
They looked relatively untroubled until, with six minutes remaining, Tom Newey gave away a free-kick on the corner of the area.
From Brown's delivery O'Toole, who scored the winner at the Kassam Stadium, headed in.
Rovers finished the game strongly and Brown almost struck a winner in stoppage time, his shot rolling inches wide of the far corner.
Oxford Utd: Clarke, Bevans, Hunt, Mullins, Newey, Smalley, Wroe, Rose, Ruffels, Kitson, Constable (Connolly 77).
Unused subs: Henly, Long, Davies, O'Dowda, Marsh, Potter.
Rovers: Mildenhall, Smith, Parkes, McChrystal, Brown, Lockyer, Clarke, O’Toole, Gow, Beardsley, Mohamed (Gillespie 67).
Unused subs: Gough, Keary, Clarkson, Norburn, Harrison, Clucas.
Referee: Lee Collins (Surrey).
Attendance: 6,493 (800 visitors).