Germany led through Ilkay Gundogan’s 33rd-minute penalty at Khalifa International Stadium on Wednesday.
Germany looked in total command in the Group E clash but, with each missed chance, left the door open for Japan, who showed almost nothing in attack until a series of substitutions injected some energy in the second half.
However, Japan hit back in quick succession, first through Ritsu Doan’s equaliser and then Asano’s late goal, to seal a historic win that came just a day after Saudi Arabia shocked Argentina.
With the loss, Germany, who were knocked out in the group stages in 2018 as reigning champions, must now fear a second straight early exit.
Japan go top of Group E which also features Spain and Costa Rica who meet later on Wednesday.
Germany are bottom for now. They lost their opener as in 2018 – 1-0 against Mexico – and went on to exit in the group stage as title holders.
Earlier, Germany’s players covered their mouths with their right hands when they lined up for the pre-game photo in a protest against FIFA prohibiting them from using a One Love armband.
“Denying us the armband is the same as denying us a voice. We stand by our position,” the team said in a statement following the protest.