Paraguay striker Lucas Barrios put Dortmund ahead with a ninth-minute penalty only for Jo, who spent time on loan at Everton and Galatasaray last season, to level two minutes later.
Joe Hart ensured City went into half-time on level terms by diving to his right to keep out a casual Barrios penalty.
But the Germans restored their lead five minutes after the break through Shinji Kagawa and Robert Lewandowski then wrapped up the win in the 81st minute.
Source: PA
Source: PA