Port Vale lost away in League Two for the first time since October and lost ground on leaders Gillingham after defeat by Oxford United.
The U's took the lead when Alfie Potter latched on to Darren Purse's under-hit back pass to slot past Chris Neal.
Vale captain Doug Loft levelled the score with his superb 25-yard drive.
But Deane Smalley smashed in a low shot to win it for Oxford, and they could have made it 3-1 but Sean Rigg saw his late penalty saved by Neal.
Sorry, we were unable to load match stats, please try again.