Parliament Hill came under attack when a man with a rifle shot a soldier standing guard at the National War Memorial in downtown Ottawa, before seizing a car and driving to the doors of building's Centre Block nearby.
The injured soldier later succumbed to his wounds.
"Condolences to family of the soldier killed and prayers for the parliamentary guard wounded. Canada will not be terrorised or intimidated," Employment Minister Jason Kenney said on Twitter.
Ottawa police confirmed shots were fired in three locations: the war memorial, inside Centre Block of the Parliament and at the Rideau Centre. The downtown area remained in police lockdown.
One suspect was believed to be at large, reports said. Police were searching cars leaving Ottawa and trying to go to Quebec.
A sustained volley of shots was fired. Startled security personnel and political staff scrambled to take cover in the limestone alcoves as bullets flew.
There were unconfirmed reports that a person was injured outside the Library of the Parliament.
"We were waiting there for a city tour and suddenly I heard four shots," said Jan Luchtenburg, a tourist visiting Ottawa from Holland.
"Suddenly I saw a small guy with long black hair... With a long rifle, and he ran away after the shots, across streets in the direction of Parliament Hill," he said.
The National War Memorial stands in Confederation Square in the heart of downtown Ottawa. The Parliament Buildings are to the northeast.
The Prime Minister's Office said Stephen Harper is safe and not on Parliament Hill. Opposition Leader Tom Mulcair and Liberal Leader Justin Trudeau are also safe, reports said.
The US Embassy was also locked down after reports of shots being fired.
The US and Canadian air defenses were placed on heightened alert after the shootings.
The attack came two days after a recent convert to Islam killed one Canadian soldier and injured another in a hit-and-run before being shot to death by police.
