Kevin De Bruyne, one of six City starters coming off World Cup duty, set up both goals and Riyad Mahrez scored just after halftime to help City reach the quarterfinals.
De Bruyne, part of Belgium’s squad that failed to advance from the group stage in Qatar, crossed to Haaland to open the scoring in the 10th minute and later sent a cross to the far post, where Ake headed home in the 58th at the Etihad Stadium.
The victory keeps Pep Guardiola’s team on course for a fifth cup title in six seasons.
Haaland showed signs of rustiness when he fired an early chance over the bar, but the Norwegian quickly made amends with a 10th-minute volley to make it two-dozen goals in 19 appearances overall.
An unmarked Carvalho made it 1-1 in the 20th after a pass from James Milner, who left the game with an injury before halftime.
The teams traded goals early in the second half. Mahrez curled home a left-footed shot before Nunez set up Salah’s equalizer.
Roberto Firmino was unavailable for Liverpool after picking up what manager Jurgen Klopp described as a minor injury in training earlier this week.
City will face Southampton next month for a spot in the semifinals. The other quarterfinal matchups are third-division Charlton at Manchester United, Wolverhampton at Nottingham Forest, and Leicester at Newcastle.
The Premier League resumes on Monday, when Liverpool visits Aston Villa.
Leeds hosts City on Wednesday.