David Hopkin received a rousing reception as he stepped onto the Valley Parade pitch five minutes before kick-off ahead of his first home game as head coach.
But it was counterpart Lee Bowyer, his midfield partner at Leeds United 18 years ago, who emerged victorious after a third-minute goal from Karlan Grant and an 81st-minute strike from his partner, Lyle Taylor.
All Hopkin collected was a booking for dissent but there was no lack of effort or spirit from the Bantams against a side fancied to make a promotion challenge.
Defeat, however, left City in the bottom four after a fourth successive loss..
Former Bantams player Hopkin made four changes largely through injury. Former Barnsley midfield man Jim O'Brien, signed as a free agent, made his debut alongside Lewis O'Brien, in for captain and hamstring victim Josh Wright. Sean Scannell recovered from groin trouble to play at wing-back and David Ball came in up front for George Miller, who was on the bench.
Charlton made three changes and included Republic of Ireland Under-21 international midfield player Josh Cullen, who made a big impression with the Bantams while on loan from West Ham in 2016-17. Another former Bradford player, winger Mark Marshall, was on the bench. Nottingham Forest loanee Jamie Ward made his debut for Charlton in an attacking midfield role behind Taylor and 20-year-old former England youth international Grant.
City almost made a dream start with Scannell whipping a cross to the near post where Doyle got in front of his marker and struck a shot which goalkeeper Jed Steer knew little about as it thudded off his chest for a corner.
However, City went behind in the third minute when Cullen threaded the ball down the left channel and Grant turned inside Anthony O'Connor before firing home from the corner of the six-yard area.
City were far from discouraged but failed to find a telling pass on the attack.
Grant was later booked as he went down across Nat Knight-Percival looking for a penalty. A back-header from the striker released partner Taylor, who fired narrowly wide of the far post, and Grant hit over from six yards after a square pass from Joe Aribo as the visitors looked far more incisive as an attacking force.
Neither side made a change at the break.
City made a bright start without unduly troubling Steer, who was injured in a 50-50 challenge with Doyle - Bradford assistant Greg Abbott being booked for complaining.
Aribo became the second Charlton player booked for diving in the area.
Charlton made the first change in the 65th minute, George Lapslie replacing play-maker Ben Reeves, on his way back from injury.
Hopkin went in the book, too, as City were denied a penalty from their fifth corner of the half, Ryan McGowan going down in an arm wrestle with Jason Pearce.
Chris Solly went in the book for a foul and Knight-Percival and Lewis Page followed as tackles flew in thick and fast.
German striker Kai Bruenker replaced Ball and Igor Vetokele came on for Ward for the visitors, who saw a free-kick from Cullen fly narrowly wide.
The game was up for City as Taylor collected the ball on the left advanced to the corner of the area and fired a vicious shot beyond Richard O'Donnell into the far side-netting.
Jordan Gibson replaced Scannell and Thomas Isherwood came on for Jim O'Brien late on and Naby Sarr replaced Grant.