Ryan Bowman made a sublime impact from the bench to secure Shrewsbury Town's fifth consecutive league win - the first time they'd achieved such a run since 2015.
The striker latched onto Killian Phillips' flicked through-ball and diverted it past the on-rushing Simon Eastwood in the 74th minute to claim his fourth goal of the season.
The home side's best chance of the game came through Kyle Joseph just past the 20th-minute mark.
The striker beat the offside trap and shot across the face of goal, but his effort ricocheted off the post.
After registering four consecutive victories for the first time since September 2017, Shrewsbury travelled to Oxfordshire looking for their fifth win in a row.
Steve Cotterill made two changes from the team that won 2-1 against Forest Green Rovers last Saturday.
One was enforced as Matthew Pennington was replaced by Rekeil Pyke, with the centre-back still suffering from a blow to the head last weekend.
It meant Pyke came in at right wing-back in a move that saw Taylor Moore shift to centre-back.
The other change saw Phillips come in for Rob Street – with the boss opting for a 3-4-2-1 formation that saw Phillips and Tom Bayliss operate behind Christian Saydee in attack.
Oxford boss Karl Robinson went with a 4-3-3 formation with Kyle Joseph in the centre-forward position.
Shrewsbury created the first chance of the game in the opening few minutes when Luke Leahy sent a cross right into the danger area.
Oxford did well to clear it. But the ball then fell for Flanagan who, from the edge of the box, unleashed a thunderbolt that sailed inches wide.
The home side responded and came close to breaking the deadlock in the 12th minute.
Brandon Fleming took a free-kick from 25 yards which looked destined for the top corner.
But Marko Marosi did exceptionally well to get over and at full stretch and parry the ball away.
A few minutes after the U’s had another opportunity when Marcus McGuane had a shot from just inside the box parried away by Marosi.
The clearance landed at the feet of Ciaron Brown on the edge of the box, but his attempt was brilliantly blocked by Tom Flanagan.
Just past the 20-minute mark the hosts went close again when Joseph beat the offside trap. The striker shot across the face of goal but his effort ricocheted off the post.
Just after the restart, McGuane had a shot from the edge of the box, but his effort was tipped over by Marosi with Salop dealing with the resulting corner.
Steve Cotterill looked to the bench for a second time in the 53rd minute and selected Ryan Bowman and Tom Bloxham to come on for Saydee and Carl Winchester respectively with the changes leading to a system tweak of 3-5-2.
In the 69th minute a Shrewsbury corner the ball was cleared to the edge of the box by the Oxford defence.
Substitute Bloxham picked up the loose ball and took a touch to set himself before sending a delightful shot towards goal, but Simon Eastwood made a fingertip save to send it over.
Joseph picked up a loose ball in the box just after the 70th minute and shot from close range but Marosi made another brilliant save low to his right.
Shrewsbury broke the deadlock in the 74th minute when Bloxham cut in from the left, unleashing a shot that was blocked by the home side's defence.
Shipley was on hand to pick up the ricocheted ball and play in Phillips. The Palace loanee flicked the ball over the Oxford defence to Bowman.
Stretching, the striker did fantastically to get hold of the ball and then guide the ball past Eastwood to claim his second goal in as many games.
Town saw out the rest of the game reasonably comfortably and, thanks to a brilliant performance for Marosi and Bowman's finish, secured their fifth league win in a row - the first time they'd achieved this run since April 2015.
Marosi (GK), Leahy (C), Moore, Winchester (Bloxham, 53), Phillips, Dunkley, Saydee (Bowman, 53), Shipley, Flanagan, Pyke (Bennett, 45), Bayliss (Street, 81)
Burgoyne (GK), Barlow
Eastwood (GK), Long (Anderson, 86), Fleming, Moore (C), Bodin (Smith, 41), Bate, Brown, McGuane (Konate´, 86), Joseph, Goodrham, Wildschut (Murphy, 71)
McGinty, Findlay, O’Donkor
Bookings: Flanagan, Shipley, Moore, Phillips; Long