The aggregate score was 4-1 in favor of Manchester City.
City will face Real Madrid in the semifinals for the second consecutive year.
Bayern missed early chances and were unable to mount a comeback.
Haaland scored the goal that effectively ended the tie, his 48th of the season.
Kimmich scored a late consolation goal for Bayern from a penalty kick.
Bayern's coach Thomas Tuchel was sent off in the dying minutes of the match.
Upamecano avoided a red card for bringing down Haaland due to an offside flag, but later conceded a penalty for a handball.
Leroy Sane missed a good chance to score against his former club.
Haaland became the youngest player to score 35 goals in the Champions League.