Foden was the only City player to start the game – a rarity in recent seasons where Gareth Southgate has often selected four or five of our players in his first XI.
John Stones was forced to pull-out of the starting XI after feeling a twinge in the warm-up before kick-off and was replaced by Arsenal's Ben White.
Southgate says Stones "felt something" before the game and it was decided not to risk him, though he may be considered for the clash with Ivory Coast on Tuesday.
"We don't think it is too bad and could be ready for the next game," said Southgate. "(There was) no point risking him in a game like this."
The Swiss went ahead in the 22nd minute when Breel Embolo headed home Xherdan Shakiri’s excellent cross.
Luke Shaw levelled in first-half added time, but it was a largely lacklustre performance by both teams in the opening period.
Raheem Sterling and Jack Grealish – the latter greeted like a rock star as he ran on to the delighted screams and cheers of the thousands of youngsters in the Wembley crowd – were introduced off the bench just past the hour-mark.
Both added energy and inventiveness to proceedings, as well as livening up the home crowd.
Grealish added threat down the left flank, while Sterling added trickery and pace down the right.
England went ahead on 78 minutes when Zuber was penalised for handball (via VAR) and skipper Harry Kane tucked home what proved to be the decisive goal.
Foden’s evening ended on 80 minutes as he was replaced by Jude Bellingham.
Elsewhere, Kevin De Bruyne wasn’t included in Belgium’s squad, allowing the City playmaker to recharge his batteries ahead of the final two months of the campaign.
Nathan Ake started as one of a back three for Holland against Denmark and bagged his third international goal - and his first for three years for his country - on 29 minutes when he headed home Steven Berghuis' cross from the left from close range.
That made it 2-1 to the Dutch following earlier goals for Steven Bergwijn (Holland) and Jannik Vestergaard (Denmark).
Memphis Depay made it 3-1 from the spot before half-time.
Just after the re-start, Christian Eriksen pulled a goal back for the Danes just two minutes into his international comeback to set up a thrilling second period.
But it was Bergwijn's second on 71 that secured an entertaining 4-2 win for Holland, with Ake's evening ending on 76 minutes as he was replaced by Malacia.
Former Blue Ferran Torres put Spain ahead on 75 before Albania levelled five minutes from time.
Dani Olmo snatched victory for La Roja on 90 minutes to secure a 2-1 win.
Ilkay Gundogan also started for Germany's game against Israel.
Chelsea pair Kai Havertz and Timo Werner put Germany 2-0 up at the break, with Gundogan assisting Werner's goal.
It was to be Ilkay's last act of the game as he was replaced by Thomas Muller at the start of the second half, though there were no further goals following Muller's added time penalty miss.