Attendance: 5,590 (924 visitors)
The Bantams slipped to their final defeat of 2017 after a disappointing loss at Shrewsbury Town.
A single goal from home debutant Freddie Ladapo four minutes before the break proved enough to secure the points for the hosts, despite City's best attempts in the second period.
Looking for their third win in succession at the start of the new calendar year, City started the stronger, with Mark Marshall forcing Shrews 'keeper Jayson Leutwiler into a decent save after a fierce angled drive from the winger.
Shrewsbury enjoyed some bright spells in City territory as the half progressed, however, and they could have took the lead on the half hour mark but Ladapo was denied by a smart stop from Colin Doyle after the striker was played through on goal.
With the game edging towards the interval, Ladapo did manage to get himself on the scoresheet to hand the lead to the Shrews.
An unfortunate slip from Shrews old boy Nathaniel Knight-Percival allowed Louis Dodds to race clear into space behind him. Dodds' shot for goal from inside the box was repelled by Doyle but Ladapo was on hand for the easiest of tap-ins from close range.
City huffed and puffed after the break in an attempt to get back into the contest but it was proving hard to break down a resolute Shrewsbury defence.
Tony McMahon saw a free-kick pushed out by Leutwiler midway through the second period, while Timothee Dieng curled an effort wide from the edge of the box a couple of minutes later.
At the other end, Shrewsbury, who were playing mainly on the counter-attack in the second period, threatened when substitute Simon Whalley volleyed wide from Ladapo's teasing cross.
Josh Cullen went close to equalising seventeen minutes from the end when his free-kick dropped onto the roof of the net but, in general, an out-of-sorts City struggled to create too many clear scoring chances against a side needing points at the bottom end of the division.
Alex Gilliead was thrown on for his City debut shortly afterwards, and while Stuart McCall's men kept going to the end, their best efforts in the game's closing stages saw shots from Cullen and McMahon blocked out from inside the box.
FT: Shrewsbury Town 1 Bradford City 0
90+3min: SUB - Shrewsbury bring on Dom Smith for Rodman.
90+1min: SUB - The Bantams bring on Rory McArdle for Meredith. The Australian appeared to pick up a knock moments earlier but McArdle will go up front regardless to give City some extra presence in attack in the final stages.
90min: There will be three minutes of time added on at the end of the match.
90min: Marshall's cross into the box eventually drops at the feet of McMahon inside the box but his effort is blocked.
90min: A long throw-in into the area drops at the feet of Cullen but his strike from just inside the box is blocked.
76min: SUB - The Bantams bring on Alex Gilliead for Dieng. Law will now switch from the left wing to central midfield and Marshall will switch flanks.
73min: Cullen curls an effort on the roof of the net from the resulting free-kick.
72min: YELLOW CARD - O'Brien is booked for bringing down Marshall a few yards outside the area following a purposeful run from the winger.
72min: Ladapo's delightful cross into the box goes over the head of Knight-Percival, finding Whalley behind him, and the substitute attacker volleys narrowly wide of the target.
71min: Junior Brown's clipped cross into the box eventually drops into the path of Ladapo but the striker's looping header is held by Doyle.
70min: Dieng's curler from the edge of the box goes a yard or two wide of Leutwiler's far post.
68min: McMahon's strike for goal direct from a free-kick outside the area is pushed away by Leutwiler.
67min: SUB - The Bantams bring on James Hanson for Hiwula.
63min: After being found in space by a pass from Rodman, Whalley tries his luck from outside the box but his curling effort goes over.
59min: SUB - Shrewsbury bring on Shaun Whalley for Dodds. For the second time this afternoon, it appears the change was due to an injury to a home player.
56min: Dodds' pass in-field finds Rodman in space just outside the area but the attacker's curling shot for goal loops over.
52min: Knight-Percival's glancing header from a McMahon wide free-kick into the box loops up nicely into the grasp of Leutwiler.
51min: Marshall's curling effort direct from a free-kick outside the area curls a yard or so over Leutwiler's bar.
46min: Shrewsbury restart the match.
HT: Shrewsbury Town 1 Bradford City 0
45min: There will be one minute of time added on at the end of the first half.
42min: McMahon sends the ball inviting into the middle from wide but Hiwula falls to connect properly with his shot and the effort spins away from goal.
41min: GOAL - Shrewsbury Town 1 Bradford City 0 - City concede four minutes before the break to drop behind in the match. Knight-Percival unfortunately slips as he looks to control the ball around the halfway line, allowing Dodds a clear run into City's half and into their box. Now in the area, Dodds shoots for goal, the effort is saved by Doyle but Ladapo is on hand for an easy tap-in into an unguarded net from close range.
40min: Marshall moves away from Riley on City's left flank before fizzing in a cross-come-shot that Leutwiler has to push behind by his near post.
39min: Alex Rodman wins the ball just outside City's penalty area but his left foot curler from an angle is easily held by Doyle.
36min: SUB - Shrewsbury bring on Jim O'Brien for El-Abd, presumably due to an injury to the Shrews skipper.
34min: Dieng turns into space after receiving James Meredith's throw-in into the box but the midfielder's effort for goal on the half volley is blocked out.
30min: Big chance for Shrewsbury! Dodds plays Freddie Ladapo through on goal but Doyle thrusts out a strong left hand to push away the striker's effort, making a vital save in the process.
29min: Following a burst forward from Marshall down City's right flank, the winger picks out Jones inside the box but the striker is crowded out by El-Abd as he tries to get a shot away and the ball eventually goes out for a goal-kick.
27min: Jones' deflected low into the box looks for a second like it could be falling nicely for Jordy Hiwula but Nsiala is just there a second earlier to make a vital clearance on the slide.
24min: Jones looks to turn away from Aristote Nsiala after receiving the ball inside the box. Jones appears to slip at the point of contact, however, and his effort bounces harmlessly wide of Leutwiler's goal.
20min: A great one-two between Law and Marshall sees City's number four in position to fire the ball across the six yard box. The neat build-up play perhaps deserved a goal but El-Abd is on hand crucially to kick clear.
19min: A neat corner routine involved Cullen and Nicky Law sees the latter pick out the late run of McMahon just outside the box. McMahon controls the pass and shoots into the box but the effort is blocked out.
16min: Dodds moves into the box from the byline before firing in a rising drive from a tight angle that fizzes over Doyle's bar.
13min: Marshall turns in-field past the attentions of Sadler before firing in a fierce drive from just inside the box that Jayson Leutwiler does well to beat away in the Shrewsbury goal.
13min: Louis Dodds' low effort from just outside the box is easily held by Doyle.
13min: Shrewsbury counter-attack with numbers but Abu Ogogo's low centre into the box is kicked clear by Nathaniel Knight-Percival.
11min: A great surging run from Mark Marshall is eventually ended when he is tugged back just outside the box. McMahon's effort on the goal from the resulting free-kick hits off the Shrewsbury wall for a corner.
8min: A great touch and turn from Alex Jones allows the striker to fire the ball across Shrewsbury's area after being found by Tony McMahon's pass. The ball is a testing one but no City team-mate is on hand to take advantage and the hosts can clear.
6min: Josh Cullen's free-kick from just outside the area is blocked by the Shrewsbury wall. Romain Vincelot goes down in the box as he attempts to take control of the loose ball but referee Mr Breakspear allows play to continue and Shrewsbury eventually see out the danger.
2min: Adam El-Abd sends a looping header onto the roof of Colin Doyle's net from a Joe Riley corner.
0min: The Bantams kick off the match.
3:01pm: A minute's silence, which quickly turns into applause, takes place just before kick off to remember those Shrewsbury Town and Bradford City fans who passed away in 2016. The applause is also to honour former England manager Graham Taylor, who sadly died on Thursday. Both sides are also wearing black armbands.
SHREWSBURY TOWN LINE UP:
Leutwiler, Riley, El-Abd, Nsiala, Sadler, Brown, Deegan, Ogogo, Rodman, Dodds, Ladapo
Subs: Halstead, Whalley, O'Brien, Smith, Jones, Anderson, Barnett
Shrewsbury Town substitutions:
O'Brien for El-Abd (36), Whalley for Dodds (59), Smith for Rodman (90+3)
Shrewsbury Town cautions:
BRADFORD CITY LINE UP:
Doyle, McMahon, Vincelot, Knight-Percival, Meredith, Marshall, Dieng, Cullen, Law, Jones, Hiwula
Subs: Sattelmaier, Darby, Hanson, Gilliead, McArdle, Devine, Kilgallon
Bradford City substitutions:
Hanson for Hiwula (67), Gilliead for Dieng (76). McArdle for Meredith (90+1)
Referee: C Breakspear
Assistant Referee: J Farries
Assistant Referee: N Aspinall
Fourth Official: J Hull