En tidig Conor McAleny dubbel och Josh Ruffels andra hälften huvudet gjorde skadan och lyfte U: s till nionde.
Trots tidiga påtryckningar från värdarna, tog U ledningen efter fem minuter när McAleny sköt in från kanten av lådan.
Den ytter, på lån från Everton, fördubblade sedan ledningen, skär in från vänster och curling in i det avlägsna hörnet.
Ingen sida kunde uppbåda ytterligare ett skott på mål under en frustrerande första halvlek för värdarna.
Steve Morison sattes ren genom timme märket men avfyrades rakt mot Simon Eastwood, och Oxford förseglade seger när Ruffels nickade i Chris Maguires 70-minuters hörn på långt håll.
Millwall är en punkt ovanför sjunde platsen Southend.
Matchrapport från Pressföreningen.
Matchen slutar, Millwall 0, Oxford United 3.
Andra halvlek, Millwall 0, Oxford United 3.
Försök missade. Lee Gregory (Millwall) höger fotade skott från vänster sida av lådan är nära, men missar till höger.
Försök missade. Ben Thompson (Millwall) höger fotade skott utanför lådan är nära, men missar till vänster.
Substitution, Oxford United. Robert Hall ersätter Marvin Johnson.
Substitution, Oxford United. Kane Hemmings ersätter Chris Maguire.
Försök missade. Steve Morison (Millwall) header från en svår vinkel till höger är nära, men missar till höger.
Försening över. De är redo att fortsätta.
Substitution, Millwall. David Worrall ersätter Aiden O'Brien.
Substitution, Oxford United. Joe Rothwell ersätter Canice Carroll på grund av en skada.
Försening i match Canice Carroll (Oxford United) på grund av en skada.
Försök missade. Steve Morison (Millwall) höger fotade skott utanför lådan missar till höger.
Mål!  Millwall 0, Oxford United 3. Josh Ruffels (Oxford United) rubrik från höger sida av sex yard box till nedre högra hörnet. Hjälpt av Chris Maguire med ett kors efter ett hörn.
Hörnet, Oxford United. Förföljd av Shaun Williams.
Foul av Byron Webster (Millwall).
Marvin Johnson (Oxford United) vinner en frispark i den defensiva halvan.
Hörnet, Millwall. Förföljd av Joe Skarz.
Foul av Jed Wallace (Millwall).
Curtis Nelson (Oxford United) vinner en frispark i den defensiva halvan.
Steve Morison (Millwall) vinner en frispark i anfallshalvan.
Foul av Curtis Nelson (Oxford United).
Hörnet, Millwall. Förföljd av Joe Skarz.
Hörnet, Oxford United. Förföljd av Jordan Archer.
Försöket räddades. Marvin Johnson (Oxford United) vänster fotade skott från utsidan av lådan sparas i nedre högra hörnet.
Foul av Ben Thompson (Millwall).
Conor McAleny (Oxford United) vinner en frispark i anfallshalvan.
Försöket räddades. Aiden O'Brien (Millwall) vänster fotade skott från mitten av lådan sparas i mitten av målet.
Foul av Aiden O'Brien (Millwall).
Marvin Johnson (Oxford United) vinner en frispark i anfallshalvan.
Jed Wallace (Millwall) vinner en frispark i den defensiva halvan.
Foul av Charlie Raglan (Oxford Förenade).
Ben Thompson (Millwall) vinner en frispark på höger sida.
Foul av Marvin Johnson (Oxford United).
Jake Cooper (Millwall) vinner en frispark i anfallshalvan.
Foul av Marvin Johnson (Oxford United).
Försök missade. Jed Wallace (Millwall) höger fotade skott utanför lådan missar till höger.
Foul av Mahlon Romeo (Millwall).
Conor McAleny (Oxford United) vinner en frispark i den defensiva halvan.
Försöket räddades. Conor McAleny (Oxford United) höger fotade skott från vänster sida av rutan sparas i nedre högra hörnet.
Foul av Aiden O'Brien (Millwall).
Millwall halkade till ett nedslående nederlag hemma till Oxford men förblir i League One play-off platser.