Shinji Okazaki opened the scoring for the Asian side in the 8th minute, chipping Canadian goalkeeper Milan Borjan with an exquisite effort from outside the area.
Canada's Marcus Haber equalized on a header in the 58th minute for his first career international goal.
With 16 minutes left on the clock, Haavenar struck from 10-yards out to give Japan a lead that it would not surrender.
"We are frustrated with the way we conceded the two goals," said Tony Fonseca, Canada's interim head coach. "Working to stop conceding goals from errors is something we have been focusing on - so the team is disappointed in that sense. At the same time - there were some young players that showed they might be part of a future generation for Canada.
"We managed to cause them some problems as well, particularly in the second half."
The Canadians will next face Belarus on Monday at the Aspire sports facility, also in Doha.