Haaland came to the rescue for Manchester City after Joao Cancelo was shown a straight red card in the first half.