Damien Delaney had a couple of chances from set pieces, but the breakthrough came in the 42nd minute. After winning the ball himself, Stuart Elliott charged forward and smashed the ball in from the left. Marshall couldn't hold it so City went in at half time 1-0 up.
The second half was a similar story, with City having even more chances. Straight from the kick off, Jason Price won a corner and Marshall did well to tip Burgess' header over.
The Tigers' top scorer came even closer in the 55th minute as he saw his lob hit the top of the bar with Marshall beaten.
Jamie Forrester put a shot wide, but assisted Elliott for the second two minutes later. He played the ball over and the Northern Irishman raced on to it to hammer a low shot into the South Stand goal.
Forrester flashed a shot wide, before Cambridge had their closest effort of the game. Adam Tann got the shot in, but Boaz Myhill saved it before Delaney cleared.
Elliott came close to making it a hat-trick as he headed Green's free kick just wide, and Delaney had a goalbound shot blocked.
Ben Burgess should have added to City's lead with 8 minutes to go, but after playing a one-two with substitute Andy Holt he hit a casual shot straight into Marshall.
David Bridges wasted the chance of a consilation goal by smashing a shot over, before City almost ended the match with another. Holt broke free on the left and played the ball over to fellow substitute Ryan France. His shot was parried out by Marshall, but as Marc Joseph turned the rebound in he was denied by the linesman's flag.
The 2-0 win moves City up to 2nd after Doncaster lost 3-1 at Huddersfield. Oxford didn't play but stay top, a point ahead of City and with two games in hand.
City line-up (4-4-2): Myhill; Hinds, Joseph, Delaney, Dawson; Price (France 84), Ashbee, Green (Thelwell 80), Elliott; Burgess, Forrester (Holt 71).
Un-used subs: Musselwhite, Allsopp.