City 1 Northampton 0

That's for you, Bobby Campbell. A Valley Parade night to remember their finest forward was crowned by the sort of goal that he made his trademark.

Appropriately it was provided by James Hanson, the only man in with a shot of one day reaching the Irishman's 143-goal club mark.

Campbell always championed his fellow number nine and Hanson's 91st score for City came in the manner that the legend would have approved of – a thumping, no-nonsense header.

The victory was the perfect comeback to Saturday's upset at Southend and kept the Bantams bandwagon rolling merrily in a top four where everyone won again.

The Roots Hall scoreline had not reflected the game and neither did this one – as 18 home shots and no away corners will testify. But it was the result that Stuart McCall so wanted to honour Campbell.

The tributes had begun with a video montage of highlights from the striker's City career played to the backdrop of "Wonder of You", which had been chosen by his widow Paula and the family who were at the game.

Applause rang round the ground throughout and was followed by a booming chorus of "One Bobby Campbell."

Everyone stood for a minute's applause before kick-off while a wreath and nine red roses were laid in the two goalmouths.

The match programme had been devoted to the Irishman and his name was even included on the squad list on the back cover.

McCall had called for a performance fitting of his former team-mate and dressing-room mentor. Unfortunately he could not call upon top scorer Billy Clarke, whose tight calf had not healed in time to feature.

Jordy Hiwula dropped out after his poor game and there was also no Timothee Dieng, who missed out with a knock.

Haris Vuckic made only his third league start and Marc McNulty his fourth. Vuckic lined up right side of midfield with Mark Marshall beginning on the left.

Northampton included former Bantams player Paul Anderson, whose previous Valley Parade outing was as a home substitute on opening day.

It was the first time the sides had crossed swords since the 2013 play-off final, when City blew the Cobblers away inside a glorious opening half hour.

But it was Northampton who offered the initial threat, with Alex Revell forcing Colin Doyle into a first-minute save.

City hit straight back and Hanson should have done better with his header from Marshall's cross.

There was more universal clapping for Campbell in the ninth minute – and City seemed determined to score an appropriate goal for the barnstorming centre forward as Hanson met James Meredith's cross with a downward header saved by David Cornell.

City were clearly looking to cash in on Northampton's makeshift central defensive pairing, missing the experience of Zander Diamond who was out with a fractured cheekbone.

Campbell would have approved at the amount of ball Marshall was seeing on the wing as the hosts looked to up the ante. The delivery was hit and miss at times but he was a constant livewire.

Marshall, whose two goals so far had both come from his supposedly weaker left foot, cut in to let rip with his right but it deflected behind off Gabriel Zakuani – referee Chris Sarginson leaving the crowd bemused by not giving the corner.

The official then did nothing to endear himself with the Kop by waving away a huge penalty shout as Hanson went tumbling under Cornell after the keeper spilled Marshall's cross.

But Northampton were not willing to play bridesmaids. They had offered the occasional counter and Sam Hoskins fired a warning cross-shot past the far post.

Josh Cullen responded with a fierce half-volley that was a coat of paint away after Nicky Law's free-kick was only half-cleared.

City finished the half with a good spell of pressure but a flurry of corners could not produce the breakthrough.

But Sarginson reinforced his position as public enemy number one – in Bantams eyes anyway – when he refused a second frenzied appeal for a spot-kick.

He indicated that Zakuani had got something on the ball as he sent McNulty flying, although that was not what a furious Kop felt behind the goal. It certainly appeared a very strong claim and the official was booed off the field at the break.

City continued to knock on the door from the restart. After McNulty's tame side-foot at Cornell, the keeper was left rooted as Vuckic nodded Meredith's cross wide.

Law's fizzing drive almost skimmed the bar but Northampton's resistance was soon broken – in the most fitting manner.

Northampton could not get the ball away under pressure and Marshall kept it alive on the line with a lobbed cross that Hanson nodded firmly beyond Cornell.

Valley Parade went delirious – and you like to think there was a toast of satisfaction from up above.

City were finally a goal up and went busily hunting for more as the siege continued. Marshall was everywhere and latched on to Law's angled ball to test Cornell with another effort.

Doyle had been a virtual spectator since the first half but then pulled off a superb save to protect City's advantage.

Anderson found room on the right wing to cross past Meredith and Revell outjumped Stephen Darby for a downward header that the Irishman managed to claim with a strong right hand. It was a fantastic reaction block from the keeper.

But that gave the visitors a lift and sub Marc Richards got on the end of Brendan Moloney's deep cross but could only steer it past the post.

Those alarm bells reminded City that the job was not yet done and they went back on the front foot, Marshall nearly sliding in to meet an inviting low cross from Filipe Morais, who had come on for Vuckic.

Richards did get a header past Doyle into the bottom corner but the flag was already up for offside.

The sight of the fourth official's board showing five minutes did not help home nerves – but Rory McArdle came on to shore up the aerial combat and City saw it through comfortably.

Attendance: 16,935