Mario Balotelli scored a brace to help Manchester City claim a place in the next stage of the Europa League.
And they emphasised their credentials in the process as the double was completed against the Austrian champions, meaning City qualified for the last 32 in February with a game to spare.
Former Inter Milan striker Balotelli, who arrived in the summer for £24million, scored either side of half-time with Adam Johnson also finding the target.
It was almost like a training session for City given their possession and they should have been more than one goal to the good at the interval.
They made their intentions clear as early as the third minute when Patrick Vieira - one of eight changes to the side - flicked the ball on to Jo only for Franz Schiemer to make a timely challenge.
Balotelli was quickly into the game and cut in from the left but sent his effort over the bar before he got on the end of a cross from Johnson in the ninth minute. The ball broke to Joleon Lescott, who was crowded out.
City should have taken the lead in the 15th minute when Vieira released Balotelli with superb through-ball. He raced on, only for goalkeeper Gerhard Tremmel to boot his effort clear.
Their pressure paid off in the 18th minute thanks to Balotelli, who swept home a fine volley from inside the area following a cross from Pablo Zabaleta.
They were cutting Salzburg open and made an unsuccessful appeal for a penalty in the 32nd minute.
James Milner found Balotelli with a defence-splitting pass and the striker homed in on goal. However Schiemer was able to get in a challenge that left his opponent on the floor but referee Libor Kovarik deemed it was fair.
Then Zabaleta picked out Shaun Wright-Phillips in the 40th minute and he tested Tremmel from distance with an instinctive shot.
City should have added a second a minute before half-time following another quick break. Johnson sent Milner scampering away but he steered his effort the wrong side of the post.
City were looking to build on their lead and Wright-Phillips got clear in the 48th minute. Jo and Balotelli were waiting in the area but the delivery from the winger was poor and it was cleared to safety.
The referee then angered the visitors by allowing play to continue in the 55th minute after Simon Cziommer was left pole-axed.
Balotelli came close to extending City's lead as Cziommer lay prostrate on the pitch. However he was able to clamber off the stretcher and make his way to the dressing room.
City squandered another good chance of adding a second goal in the 58th minute after a sweeping move.
Jerome Boateng and Wright-Phillips linked up but Balotelli's powerful effort ended up in the side-netting.
Then Milner cleared the bar with a 20-yard shot after being set up by Johnson before they eventually extended their lead.
Balotelli scored his second goal from close range following a ball from Vieira after Johnson had won possession.
He almost completed his hat-trick a minute but again his effort found the side netting.
Balotelli was given a standing ovation when he was replaced by Emmanuel Adebayor in the 71st minute.
And City made it 3-0 seven minutes later following a fine individual effort from Johnson.
He skipped past three dispirited Salzburg players before finding the corner with his shot as City march on.Reuse content