One suspect was identified as Alexandre Bissonnette, a French-Canadian, the other as Mohamed Khadir, who has a Moroccan background, according to Reuters.
Six people were killed and eight have been seriously wounded.
Five people were critically injured and remain in intensive care.
A spokeswoman for the Quebec City University Hospital said three were in a critical condition.
Another 12 people have been treated for “minor injuries”.
Canadian Prime Minister Justin Trudeau has called it “a terrorist attack on Muslims”.
Have there been any arrests?
Police say two suspects are under arrest.
Officials have confirmed the suspects names as Alexandre Bissonnette and Mohamed el Khadir.
They have said the two men are of Canadian nationality.
However, no further details have been given about those detained or a possible motive for the attack.
They have not confirmed reports claiming the suspects were students at the Universite Laval, nor that the victims were all men.
Officers say one of the suspects called the police to give himself up.
The other was arrested at the scene.
An address near the mosque has been searched.
With 42,500 students, Université Laval is the oldest French-language university in North America.
Vigils are planned for Montreal and Quebec City.
Messages of condolence have come in from around the world.
Pope Francis offered his condolences. “The pope underlined how important it is in these moments that everyone remains united in prayer, Christians and Muslims,” the Vatican said. (Euronews)