A former student wielding two handguns entered a school in the western part of the violence-plagued Brazilian city and opened fire, killing at least 11 students and wounding 18 more.
Parents who arrived to pick up their students instead found a chaotic scene, with police helicopters landing nearby to ferry away the injured.
One man told Al Jazeera he never thought such a shooting could happen in his country.
Al Jazeera's Gabriel Elizondo reports from Rio de Janeiro.
Related video »
THE DAILY TELEGRAPH: Gunman captured on security video »