Manchester City through to the semi-finals of the Champions League after sealing last-eight victory over Borussia Dortmund courtesy of a comeback win in Germany.