Classes for students at École Guyot School ended early on Monday.
Fire crews were called to the Southdale area school at around 11:20 a.m. yesterday for a monitored fire alarm.
When crews arrived at the school, smoke and flames were coming from the roof. A fire attack was launched immediately, and the fire was declared under control shortly after 12:30 p.m.
Students and staff were evacuated and brought to another location where parents and caregivers picked up their children.
It's believed the fire was accidental, caused by a malfunctioning heat system on the school's roof.
Damage was mostly confined to the gymnasium area of the school.
No injuries were reported.