The Londoners went through to the semi-final of the Champions League despite losing 1-0 to Porto in the second leg of their quarter-final tie, while City overcame a half-time deficit to knock out Borussia Dortmund.
Mateo Kovacic missed the Porto clash for Thomas Tuchel’s side and is ruled out for the weekend, but elsewhere the German will have a full roster to choose from.
Thiago Silva has served his domestic ban and is in line for selection, with club captain Cesar Azpilicueta and Kurt Zouma completing the back three.
Kovacic’s absence will force N'Golo Kante and Jorginho to go again in the centre of midfield, with Reece James keeping his place on the right and Marcos Alonso replacing Ben Chilwell at left wing-back.
Pulisic may take a rest for this game, though, with Timo Werner coming back into the front three alongside Havertz and Mason Mount.
Pep Guardiola has a similar abundance of availability, with only Sergio Aguero injured ahead of the weekend.
Such is the depth of the Premier League leaders that they were able to win in midweek without the likes of Joao Cancelo and Raheem Sterling in the starting XI, allowing for fresh legs to come into the side for this semi-final.
The former will almost certainly come in at right-back to replace Kyle Walker, while Aymeric Laporte could make his first appearance since being out injured.
Benjamin Mendy earned himself consecutive league starts last week for the first time since December and could feature again at left-back.
Fernandinho could lead the team in midfield alongside mainstays Kevin De Bruyne and Ilkay Gundogan, while Sterling and Gabriel Jesus should complement Phil Foden in the front three.
The City youngster dazzled once again, scoring a brilliant goal to seal the win over Dortmund on Wednesday, further justifying his burgeoning reputation across the continent.