Europa League - Manchester City ease to win
Silva opened the scoring early on to get his first goal for the club and, while the hosts had their chances, it was relatively plain sailing for City, who should have scored more before Jo doubled the lead on 63 minutes.
The win puts City top of Group A, ahead of Juventus after they drew 3-3 with Lech Poznan in Turin.
A cagey opening from both sides sparked to life on eight minutes when Silva slid a crisp low finish home after good work from Wayne Bridge - returning from injury - and Jo, who started in place of the injured Emmanuel Adebayor.
City had made six changes from the 1-1 draw with Blackburn but it was hardly a second string side, with every player a major international and eight present at the World Cup.
Bridge, making his first appearance of the season, was enjoying himself down the left, putting in a dangerous cross just after the quarter-hour mark that Carlos Tevez could not finish.
Tevez, sporting a new cropped haircut, forced a save from Gerhard Tremmel in the Salzburg goal before the hosts had a series of chances as they came back into the game.
Joaquin Boghossian headed wide when he should have scored following a period of sustained pressure, while skipper Ibrahim Sekagya hit the top of the bar as his mis-hit shot dipped freakishly, although Hart appeared to have it covered.
Those chances, around the half-hour, woke City into action as Roberto Mancini’s side regained control of the game, Tevez and Silva forcing good stops from German Tremmel, with the latter guilty of delaying when an early shot surely would have beaten him.
The second half was initially bright, with both sides going close.
Nikola Pokrivac fired just wide after a clever free-kick routine, while for City Jo wasted a great opportunity with a heavy touch on his chest after Gareth Barry put him clean through - although he soon made up for it.
Jo cost £17 million when he joined City three years ago but struggled badly and was farmed out to Everton.
This was his first start since December 2008 and he repaid Mancini’s faith with a poacher’s goal, the quickest to react when Tremmel failed to keep out Tevez’s stinging shot.
The match was over as a contest and both sides seemed to ease off, although Franz Shiemer should have converted Jakob Jantscher’s low cross, while Sekagya put a free header over from an injury-time corner.
City had some late chances too, with Yaya Toure putting in a vicious low ball that his sliding team-mates could not meet, while Jo was denied by Sekagya after turning on to Barry's pass.
Next up in Europe for City is the tie of the round as they host Juventus, who came from two goals down against Polish side Lech Poznan but conceded an injury-time equaliser.