Oldham Athletic 0 Bristol City 3
Gary Johnson's side ruthlessly took apart the opposition as Enoch Showunmi, Jamie McAllister and Wayne Andrews all hit the target.
Oldham had not lost at home in the league since August but they were always second best and could not handle City's impressive forwards.
Showunmi was superb despite missing a penalty, while former Oldham striker Andrews netted as a substitute on his debut after signing on loan from Championship side Coventry.
Visiting keeper Adriano Basso made the first save of the afternoon when he dived full length to keep out a Richie Wellens shot from just outside the box.
But City soon took charge and made the breakthrough on nine minutes after Showunmi ran 20 yards.
His low shot from just outside the penalty area took an awkward bounce in front of Les Pogliacomi and the keeper was unable to make a stop as he sprawled to his left.
Oldham's defending was already uncertain and they got themselves in a tangle which saw Scott Murray given a decent chance.
His shot from 16 yards had goal written all over it before Pogliacomi somehow tipped it on to the crossbar.
Murray won a penalty after 17 minutes when he was tripped from behind by Simon Charlton but Pogliacomi went the right way to beat out Showunmi's kick.
The Oldham keeper then made another great save from Stephen Brooker as the striker took aim from only eight yards.
The home team had a goal disallowed when Chris Porter was controversially ruled offside but it was 2-0 eight minutes before half-time.
Pogliacomi was rooted to the spot as City left-back McAllister hit a shot from 25 yards which went inside the left-hand post.
Andrews replaced the injured Brooker at half-time and should have scored after 54 minutes when he beat the offside trap to go clean through on goal.
He made amends 11 minutes later by lunging in at the far post to net from six yards after a left-wing cross by Showunmi.
Andrews wasted another chance before hapless Oldham did likewise in the last minute through Porter to sum up their performance.