Chris Maguire’s injury-time free-kick gave the hosts the three points and left Stuart McCall’s men ruing their missed opportunities.
Clarke was presented with the opportunity from 12 yards after Timothée
Dieng was fouled inside the box but the midfield could only smash his spot-kick against the crossbar.
Want all the match stats? View The Yorkshire Post’s stats centre
Jordy Hiwula then blazed another good oppportunity over the bar as the two sides went into the break level.
Left-back James Meredith was forced off through injury shortly into the second half before Hiwula had a second big chance that he hit high over the bar.
Hemmings came close to putting Oxford in front with 20 minutes to go but the hosts stole the points in added time when Maguire’s set piece wrongfooted Colin Doyle from 20 yards.
The Bantams remain in second place in League One but now face a four-point gap to leaders Scunthorpe.
McCall said: “We don’t like losing any game, but it is particularly disappointing when you lose it in the final moments of the match.
“In large spells of the game I thought our performance was very good, we were just not clinical enough when our chances arose.
“We played some good stuff in patches and created some great chances but we didn’t work the ‘keeper enough.
“Romain (Vincelot) is convinced at the end that it was a penalty but we didn’t get it.
“I knew this would be a tough game, Oxford will give a lot of sides problems this season, but I felt our performance probably deserved at least a share of the spoils.
“It is a horrible feeling to lose, it is never nice to lose, but we can’t do anything about it now. We must look to bounce back on Tuesday with a strong performance against Southend.
“We will regroup after this one, possibly freshen things up with one or two changes, and look to hopefully get all three points from the match.”