The in-form City defender’s evening ended on 37 minutes after he clearly picked up an injury.
After intercepting a Germany attack, Stones looked to start a counter-attack as he moved forward but then pulled up holding the back of his leg and after consulting with the medical team, was unable to continue.
Stones had been in excellent form for City, filling in at right-back during Kyle Walker‘s absence and scoring a superb goal against Borussia Dortmund.
Ironically, it was the fit-again Walker who replaced Stones.
Prior to the injury, the only moment of note came when England keeper Nick Pope saw a poor clearance fall to Ilkay Gundogan who put his shot over the bar.
Phil Foden, winning his 18th cap, was named in the starting XI and showed some neat touches and flashes of skill, but the first half ended 0-0 with few chances for either side.
There was no Jack Grealish for this game, with the City winger serving a one-match suspension after collecting a yellow card in the weekend loss to Italy.
Seven minutes after the break, Harry Maguire clipped Jamal Musiala in the box after a VAR check, the referee awarded a penalty.
Gundogan tucked the spot-kick away to give Germany a 1-0 lead.
It was Gundogan‘s 16th goal for his country in his 62nd appearance.
Germany spurned chances to increase their lead in the minutes that followed, as frustration grew at Wembley.
England were rapidly moving towards a sixth game without a win - the Three Lions’ worst run for 29 years - but there was to be a dramatic end to the game.
Foden was replaced on 66 minutes by Arsenal’s Bukayo Saka and within a minute, Germany had doubled their lead with a sublime effort from Chelsea’s Kai Havertz.
Luke Shaw then halved the deficit just four minutes later to give England hope when all seemed lost.
After a stoppage for an injured German player, Wembley then erupted as Mason Mount thumped home the equaliser from 18 yards to make it 2-2 to make it two goals in three minutes.
And there was even better to come for England as Harry Kane seemed to have completed a remarkable comeback with what looked to be the winner from the penalty spot on 83 minutes after VAR indicated Jude Bellingham had been fouled in the box.
But it was Havertz who had the final say, levelling on 87 minutes after Pope spilled a Serge Gnabry shot and the Chelsea man finished from close range to make it 3-3 and leave a near-79,000 crowd breathless in the process.