Joe McNerney put the hosts ahead before Chris Maguire equalised with his first league goal for the U's.
Callum O'Dowda's neat finish and Liam Sercombe's looped effort put Oxford in the driving seat.
The visitors secured the win as Maguire smashed home a penalty after he was brought down by Simon Walton before George Waring fired home a fifth.
The result leaves Oxford in second place, four points clear of fourth-placed Bristol Rovers with just five games remaining, whilst Crawley sit comfortably in 17th.
Crawley Town manager Mark Yates told BBC Surrey:
Media playback is not supported on this device
"It's a frustrating game really. I thought we were great first-half and but for a mistake that Sonny Bradley's been unlucky that he tried to keep the ball in and we got punished for it.
"But the second half was not good enough. We talk about goals changing games and once the second one went in, I think you saw a little bit of negativity creeping in and we didn't deal with situations.
"I think we have Jack Rose to thank it wasn't a couple more. That's the most frustrating we can go from being so good to being so thick."
Oxford United came from a goal behind to thump Crawley and strengthen their League Two promotion challenge.