Japan (5) 12
Onishi is mobbed after his last-gasp conversion
Tries: Endo, Taira
Canada (0) 12
Tries: Riordan, Van der Merwe
Japan scored a last-gasp try to draw a dramatic match with Canada in Bordeaux.
The Brave Blossoms took the lead through Kosuke Endo's superb early try to lead 5-0 at the break before Canada hit back through hooker Pat Riordan.
It looked like the Canucks had wrapped up victory when DTH van der Merwe collected a cross-kick for their second score, with James Pritchard converting.
But Koji Taira scored an injury-time try for Japan and Shotaro Onishi's conversion levelled the scores.
Japan produced a typically committed performance, flying into tackles and refusing to give an inch as they edged the first half.
They took the lead after 12 minutes with a brilliant individual effort from winger Endo, whose sparkling length of the field score against Wales was already a try of the tournament contender.
Japan won quick ball off the top of a line-out and fed Endo, who burst through Canadian number 10 Ryan Smith and then stood up Van der Merwe before rounding the winger to score.
Onishi missed the conversion but Canada had been slow out of the blocks and Japan kept them at arm's length until the final stages of the half.
With five minutes to go to the break the Canucks launched a sustained assault on the Japan line but the attack petered out when they could not get quick ball from a ruck.
And their irritation increased when hooker Riordan's frustration got the better of him and he was sin-binned for careless use of the boot.
Canada seemed spurred by a sense of injustice and they enjoyed their best spell of the game so far, but still could not cross the line.
After Pyke had just been denied in the corner from a grubber kick the Japanese won their line-out, but the clearance kick was charged down.
Endo scored his second spectacular try of the tournament
Canada launched a series of attacks before Pyke burst onto the ball wide on the left, but it was knocked from his grasp as he tried to power over the line.
Canada opted to keep the ball closer to their pack in the second half and it paid off almost immediately as Riordan, back after his spell in the sin bin, ploughed over to finish off a powerful drive by the forwards.
Pritchard missed the conversion but just when it looked as though Canada were going to stretch clear, Japan produced a series of forward drives of their own.
They eventually kicked a penalty into the corner and tried to batter their way over once again from the resulting line-out, but Luatangi Samurai Vatuvei was driven back by ferocious Canadian defence and the Canucks escaped.
The North Americans finally took the lead when livewire scrum-half Morgan Williams took a quick penalty and his cross-kick enabled Van der Merwe to slither over.
Pritchard converted but Japan refused to accept defeat and launched a series of late attacks.
Canada conceded penalty after penalty, including a debatable decision in the 82nd minute after they had batted the ball dead, and Japan finally scored through Taira down the left to send the Bordeaux crowd into raptures.
That left Onishi with a hugely pressurised kick from near the touchline to level the match and he drilled the ball nervelessly between the posts to record only the second draw in World Cup history.
Japan coach John Kirwan:
"I think today was like a World Cup final for both Japan and Canada and I think 40,000 people have probably gone away pretty happy.
"As far as execution went we were pretty average. I don't think we played particularly well, I felt we could have played a lot better. To come out with the draw is bitter sweet. But we showed a lot of courage continued right to the end. "
Canada coach Ric Suggitt:
"We have to look at ourselves and make sure we do enough to win games. We had opportunities in the second half to pull away and we didn't do it."
Canada captain Morgan Williams:
"The ball went out in the 81st minute and then we played an extra three minutes after that. I don't know, was his watch broken, or was he blind?"
Canada: Mike Pyke; DTH Van der Merwe, Craig Culpan, David Spicer, James Pritchard; Ryan Smith, Morgan Williams (capt); Rod Snow, Pat Riordan, Jon Thiel; Mike Burak, Mike James; Colin Yukes, Adam Kleeberger, Aaron Carpenter.
Replacements: Mike Pletch, Dan Pletch, Scott Franklin, Josh Jackson, Mike Webb, Ed Fairhurst, Justin Mensah-Coker.
Japan: Go Aruga, Kosuke Endo, Yuta Imamura, Shotaro Onishi, Christian Loamanu, Bryce Robins, Tomoki Yoshida; Tatsukichi Nishiura, Yuji Matsubara, Tomokazu Soma; Hitoshi Ono, Luke Thompson; Hare Makiri, Philip O'Reilly, Takuro Miuchi (capt).
Replacements: Taku Inokuchi, Ryo Yamamura, Luatangi Samurai Vatuvei, Hajime Kiso, Chulwon Kim, Koji Taira, Hirotoki Onozawa.