A gunman shot a soldier at a war memorial in Ottawa, then ran into the nearby parliament building where he exchanged gunfire with police.
According to a government minister, the wounded soldier later died. One gunman is also believed dead.
More shots were fired outside a nearby shopping centre and several buildings around the city are on lockdown.
The incident came hours after Canada raised its terror threat level, after another soldier was killed on Monday.
The latest incident began when soldiers guarding the memorial came under fire on Wednesday morning.
"Shots fired at War Memorial at 9:52am today; one person injured," Ottawa Police tweeted.
Police have told those in the vicinity to stay away from windows and roofs as they search for additional suspects.
One gunman - said to be carrying a rifle - fired on soldiers guarding Canada's main war memorial and then ran into the parliament.
"The indications are there is more than one gunman. There may be several," Canadian MP Marc Garneau told the BBC, adding he and fellow politicians were evacuated from the area.
One gunmen inside the parliament has reportedly been shot dead but there are no reports yet of anyone else inside the building being hurt.
The nearby University of Ottawa has been placed on lockdown, as well as all local police buildings and the US Embassy.
Meanwhile, Prime Minister Stephen Harper "is safe and has left Parliament Hill", his director of communications wrote on Twitter.
Senior government member Tony Clement said on Twitter shots were fired near an in-progress cabinet meeting in parliament.
A government official earlier said the raised threat level was in response to an increase in online "general chatter" from radical groups including Islamic State and al-Qaeda.
Ministry spokesman Jean-Christophe de Le Rue said on Tuesday that the increased level "means that intelligence has indicated that an individual or group within Canada or abroad has the intent and capability to commit an act of terrorism".
On Tuesday a Muslim convert was killed by Quebec police after deliberately hitting two soldiers in his car, killing one and injuring another.
A minister said it was a "terrible act of violence against our country".
Earlier this month, Canada announced plans to join the US-led campaign of air strikes against Islamic State (IS) militants in Iraq. (Source: BBC)