The race was initially scratched from next year's calendar but was provisionally reinstated in October, subject to a satisfactory financial agreement with the teams for running without tobacco sponsorships.
"We have reached a deal with Formula One Management and Bernie Ecclestone, representing the teams, and the Canadian Grand Prix will be on the calendar in 2004 and beyond (until 2006)," race promoter Normand Legault told a news conference.
Legault said the package, a "discount" compared with the C$42 million he said was requested by Ecclestone, would "buy out" the contractual clause allowing the F1 boss to withdraw if cars were unable to run with their cigarette logos.
The race promoter added the deal called for Ecclestone to pitch in, but did not say by how much.
In a statement, Ecclestone said: "All of the Formula One community is pleased to be able to return to Montreal in June and to run there in 2004. We eagerly await this event, which is among the most treasured in the championship".
COMPENSATION PLAN
Three
Canadian organisers, who had said they could not pull off the compensation plan by themselves, will get C$6 million from both the federal and Quebec governments.
Labatt Breweries will put in C$5 million, leaving a C$12 million gap to be filled by Legault, who will try to raise the money through new and existing sponsors.
Though encouraging for the local tourist industry, the Grand Prix generates an estimated C$80 million for the city, the news was a mixed blessing for fans as Legault said ticket prices would have to rise.
The cash-settlement approach by Canada differs from how Belgian organisers and politicians dealt with their tobacco ban.
Belgium postponed its legislation to ensure the race at Spa-Francorchamps returned next year after being dropped from the 2003 calendar.
Tobacco sponsorship is also due to be prohibited in the European Union from mid-2005.