Rovers looked comfortable when they went in 2-0 up at the interval after goals from Martin Woods and Iain Hume.
Woods fired home in the 27th minute after latching on to a cross from Paul Keegan and Hume slid in for the second nine minutes later following good work by Billy Paynter.
But it failed to knock the fight out of Bradford and Marshall scored the goal of the game to put them back in the tie in the 56th minute.
Substitute Danny Holland tapped a short pass to the 27-year-old midfielder who curled a wonderful left foot shot into the top corner from just outside the box.
It spurred on the visitors and Doncaster had to defend for a spell until they put the issue beyond doubt when substitute Chris Brown headed home in fine style from Keegan's 76th-minute corner.