Having trailed to a 33rd-minute penalty from Ilkay Gundogan, who also hit the post on the hour mark, Japan drew level with 15 minutes of normal time remaining when Doan fired in after Manuel Neuer parried a Takumi Minamino effort.
Asano then cracked past Neuer eight minutes later as the Germans became the latest victims of an upset, a day on from Argentina's 2-1 loss to Saudi Arabia.
It was yet further World Cup woe for four-time winners Germany, who arrived in Qatar looking to bounce back from exiting the 2018 edition, at which they had been defending champions, in the group stage.
Their second group match is a crunch clash with Spain on Sunday, when Hajime Moriyasu's Japan take on Costa Rica.
Germany are one of the sides whose captain had been set to wear the anti-discrimination, rainbow-coloured OneLove armband at the tournament before dropping the plan following threats of sporting sanctions from FIFA.
And the players made their feelings about the situation known just prior to kick-off, posing for a team photo with their hands over their mouths.
The German football federation, the DFB, tweeted a picture of that gesture, and said: "Denying us the armband is the same as denying us a voice. We stand by our position."
After the contest got under way, there was an early scare for Hansi Flick's men when they lost possession in the seventh minute, Japan broke forward and Celtic's Daizen Maeda sent the ball past Neuer, only to see the flag up for offside.
The first effort of note at the other end came 10 minutes later as Antonio Rudiger headed wide, and Japanese goalkeeper Shuichi Gonda subsequently made saves to deal with strikes from Joshua Kimmich and Gundogan.
Germany were then awarded a penalty by Salvadoran referee Ivan Barton just past the half-hour mark when Gonda was judged to have fouled David Raum, which Manchester City midfielder Gundogan dispatched in composed fashion.
Further efforts from Kimmich and Jamal Musiala went over the bar, and Chelsea's Kai Havertz then saw a close-range finish disallowed for offside before Maeda sent a header just wide of Neuer's goal in the final moments of the first half.
The opening stages of the second saw Daichi Kamada fire into the stand and Musiala dance past several players in the Japan box but hit his shot too high.
Gundogan then nearly made it 2-0, collecting Musiala's pass and seeing a low strike go wide off the upright.
Gonda was busy in the 70th minute as he made a save to deny Jonas Hofmann, followed by three in quick succession from to keep out Serge Gnabry attempts.
It was then Neuer producing fine work soon after as he kept out a deflected Junyo Ito shot, with Hiroki Sakai blazing off-target on the follow-up.
Moments later, a similar situation saw Japan equalise, with former Liverpool man Minamino's effort being parried by Neuer and fellow substitute Doan able to make the most of the loose ball, blasting into the net.
And Japanese fans were then sent into delirium once again soon after as Asano controlled a long ball forward, held off Nico Schlotterbeck and fired in.
Leon Goretzka struck narrowly wide in stoppage time as Germany's late efforts to save themselves from defeat proved in vain.