Alberto Zaccheroni's men dominated the game, but needed 94 minutes to score against a very well organized North Korea defense.
Alberto Zaccheroni fielded Yosuke Kashiwagi instead of injured Keisuke Honda, while North Korea's starting lineup featured three J-Leaguers, including Jong Tae-Se - who once again shed tears during the North Korean anthem.
During a windy and rainy first half, the Koreans posed no threat to Japan, but fiercely defended, frustrating most of Japan's combinations.
Some 10 minutes into the second half, Yun Jong-Su decided to give a chance to 18-year-old Pak Kwang-Ryong. Zaccheroni answered with Hiroshi Kiyotake for Kashiwagi, with Shinji Kagawa moving to the middle, the same position he usually occupies at Borussia Dortmund.
Japanese-born Dutch striker Mike Havenaar made his debut for the Samurai Blue half way through the second half, as the game had become a one-way siege to the Korean goal.
Yoshihito Endo shaved the post with one of his trademarked free kicks, Havenaar was unlucky to slam a powerful shot onto the crossbar, and Shinji Okazaki's header with 10 minutes left was countered by a great save by Ri Myong-Guk.
Pak Kwang-Ryong was shown a red card before the end, for a brutal tackle on Endo, but despite the numerical superiority and another crossbar hit by Yasuyuki Konno the match seemed to be doomed to end with a scoreless draw.
But Maya Yoshida gave Japan the goal it had chased for over ninety minutes with a header after a corner kick in the dying minutes to hand Japan a much tougher win than would have been expected.