Deon Burton nodded them in front in the 11th minute with a free header from Marcus Williams' left-wing cross.
And David Syers made it two courtesy of a fine finish as he lobbed keeper Ryan Clarke on 72 minutes to send Scunthorpe into second place in the Sky Bet League Two table.
Burton had earlier missed a great opportunity to double the Iron's lead five minutes before the break.
Deane Smalley gave away a penalty by handling Terry Hawkridge's corner, but Burton's spot-kick was hit too centrally and Clarke saved well.
Sean Rigg twice went close for the U's before half-time, firing over from eight yards after David Hunt's long throw caused problems, and then shooting straight at keeper Sam Slocombe from the edge of the box following neat footwork.
Oxford pressed hard for an equaliser in the second half and Asa Hall forced Slocombe into a good save.
Then, at the other end, Burton missed a sitter which would have given Scunthorpe a more comfortable last 20 minutes.
The U's also missed a penalty, in the 83rd minute, after Slocombe fouled James Constable, with the keeper redeeming himself to save superbly from Smalley's spot kick.