A pair of Morten Gamst Pedersen free-kicks helped Blackburn Rovers secure their first victory of the season.
Trevor Sinclair glanced home the Norwegian's first set-piece, before Joey Barton equalised for the visitors.
Pedersen again gave the home side the lead from a dead-ball situation, before Andre Ooijer scored the second own goal of the game on the stroke of half-time.
But manager Mark Hughes was able to celebrate two years in charge at Ewood Park with a win, thanks to second-half strikes by Benni McCarthy and substitute Paul Gallagher.
Hughes made one change to the side that drew 2-2 with Red Bull Salzburg in the UEFA Cup on Thursday night - Francis Jeffers preferred to Gallagher up front.
Stuart Pearce made two changes to the side that lost 1-0 at Reading earlier in the week, with Hatem Trabelsi and Dietmar Hamann handed their City debuts, in place of Claudio Reyna and the suspended Ousmane Dabo.
Despite finding themselves at the foot of the Premiership away table going into the game, the visitors started the well and dominated the first half. Sinclair was denied by a brilliant full-stretch save after just 40 seconds, before former Rover Paul Dickov twice went close from long range.
Trabelsi fired just wide with a left-foot curler on 10 minutes, before providing Barton with what should have been the opening goal just four minutes later. Bernardo Corradi clipped the ball over to Trabelsi at the back post, the Tunisian cushioned the ball into the path of the onrushing and unmarked Barton, but the City midfielder blazed over the bar when it looked easier to score.
The miss proved costly, as with Rovers' very next attack and completely against the run of play, they took the lead. David Bentley was fouled 25 yards from goal and from Pedersen's fierce in-swinging free-kick, Sinclair glanced the ball past Nicky Weaver and into the corner of his own net.
Barton had two good chances to restore parity, before eventually getting his goal on 39 minutes.
His goal-bound free-kick was headed off the line by Lucas Neill, Brad Friedel then saved with his legs in a one-on-one situation, before the Scouser again found himself clean through after a well-worked move in the centre, and on this occasion he coolly slotted the ball past Friedel for 1-1.
Jeffers almost capped his first start at Ewood Park with a goal three minutes later, before Rovers did find themselves back in front just a minute before the break.
Bentley was again brought down outside the box and an almost identical Pedersen free-kick eluded everyone on its way into the far corner of the net.
The home side held their lead for less than a minute. After Sinclair's incisive run through the centre, Corradi played the ball in from the right and as Ooijer appealed for offside, the Dutchman inadvertently diverted the ball past Friedel into his own net.
Hughes made a double change at half-time, with Tugay and Jeffers replaced by Aaron Mokoena and Shabani Nonda, and it was the loan signing from AS Roma who helped set up Rovers' third.
On 66 minutes, Nonda played in Pedersen with a quick throw-in, the Norwegian unselfishly laid it square to McCarthy, who coolly tapped in from six yards.
Micah Richards came within an inch of grabbing an equaliser on 83 minutes from Barton's corner, before Rovers sealed the victory a minute before full-time.
Brett Emerton did brilliantly down the right wing, before picking out Gallagher in the centre and the skilful Scot, on for McCarthy, superbly struck the ball into the top corner on the half-volley.