With Bantams boss Phil Parkinson watching on from the bench, City's second string made it five league wins on the trot when Marshall struck home with a low drive from outside the box twenty minutes after the restart.
Marshall was taken off shortly after his match-winning goal, while Greg Leigh was given 82 minutes in the encounter at Shrewsbury Sports Village.
Fresh from his hour-long comeback appearance during the reserves win over Wigan Athletic last Tuesday, Paul Anderson managed 74 minutes against Shrewsbury.
As he did in the Wigan fixture seven days earlier, Anderson featured on both the right and left wing during the match.
The 27 year-old put in another purposeful performance, with the winger being denied by home shot-stopper Callum Burton after bursting through to the edge of the area during the second period.
Hosts Shrewsbury enjoyed the better of the opening chances during the early stages of the match.
Ethan Jones narrowly lobbed over after the striker had found himself in space in the box following Callum Grogan's clever pass.
Experienced Shrews defender Mickey Demetriou also headed wide from a Chris Gallagher corner later in the half.
City began to get more opportunities of their own as the opening period progressed, however, as Leigh played a one-two with Niah Payne before firing narrowly wide from just inside the box.
After testing Burton earlier with one free-kick, Marshall then struck the post with another effort direct from a dead-ball situation roughly 20 yards from goal shortly before the break.
Shrewsbury engineered an early opening following the beginning of the second half when Gallagher poked wide from Jones' pull back but City soon began to gain a greater control in the match.
The Bantams took the lead in the 65th minute when Marshall picked up the ball in space before firing in a drive from distance that had the power and accuracy to beat Burton by his near post and nestle in the bottom corner.
Running onto Daniel Devine's cushioned pass forward, Anderson tried to double City's advantage roughly five minutes later but his shot from the edge of the area was blocked by the legs of Burton.
Sumaili Cissa tried to capitalise on the loose ball but the attacker saw two efforts blocked by Shrewsbury defenders, his second strike actually deflecting behind for a corner.
Good closing down from Xander McBurnie - Marshall's second half replacement - then gave the Bantams another opening further into the second half.
With Shrewsbury trying to play from the back, McBurnie robbed Callum Roberts of possession just outside the Shrews' area. The ball eventually broke to Payne but his low drive from a yard or so inside the box hit the base of Burton's near post.
Devine tried to scramble home the rebound but his effort was blocked.
1. Joe Cracknell
2. Kwame Boateng
3. Greg Leigh
4. Sam Wright
5. Kesi Omolokun
6. James King
7. Paul Anderson
8. Daniel Devine
9. Niah Payne
10. Sumaili Cissa
11. Mark Marshall
12. Chandler Hallwood (GK)
14. Tom Windle
15. Alex Laird
16. Xander McBurnie
17. Ville Moilanen
McBurnie for Marshall (66), Moilanen for Anderson (74), Windle for Leigh (82)