Dominik Szoboszlai scored from the spot on 66 minutes to give the hosts a surprise 1-0 victory in Budapest.
City had three players taking part over the course of 90 minutes.
Jack Grealish also came on as a sub on 62 minutes, replacing Chelsea’s Mason Mount.
In a game of few opportunities, Hungary were awarded a penalty just moments after Walker’s exit, as Reece James and Hungary’s Zsolt Nagy tangled in the box and the referee pointed to the spot.
Szoboszlai tucked the ball home and neither Stones or Grealish were able to affect the game in the time that remained in what was a below par display by England.
Boss Southgate is likely to shuffle his pack for Tuesday’s clash away to Germany.
Ilkay Gundogan came on after 69 minutes as Germany drew 1-1 against Roberto Mancini's Italy.
The Azzurri went ahead a minute after Gundogan's introduction, but Germany levelled three minutes later thanks to a cool finish from Joshua Kimmich.
Gundogan saw a shot saved five minutes later as Germany finished strongly, but the game ended 1-1 to ensure England are bottom of Group E with one game played.
Elsewhere, Gavin Bazunu was an unused sub for Republic of Ireland who were also beaten 1-0 - by Armenia - in their opening Nations League fixture.