Canada dropped a 24-21 decision to Zimbabwe before bouncing back with a 10-7 win over Spain. All three sides finished with seven points apiece in Pool E to move on to the final eight while the Philippines was last with only three points.
In the late game, John Moonlight gave Canada an early lead with a try in the third minute. Canada took advantage of a penalty kick to launch a cross-field boot that allowed Taylor Paris to score in the corner to make it 10-0.
Spain managed a late try and conversion but Canada held on for the victory.
"A pleasing end to the day after a disappointing start against Zimbabwe," said Canadian coach Geraint John.
"Players showed far more energy and enjoyment with better skill level in the last game and we could have scored a couple more against a very good Spanish team, who will be a test for anyone tomorrow."
Paris scored two tries in the opener but Zimbabwe's early lead proved to be too much to overcome.
Canada will play Russia on Sunday while Spain will meet Tonga. In the other quarter-finals, Japan meets Hong Kong and Zimbabwe takes on Portugal.
The Canadians need to finish in the top three in the qualifying section to ensure they receive so-called core status. That will allow them to compete at the highest level in the leadup to the sport's Olympic debut at the 2016 Summer Games in Rio de Janeiro.
In the core games, Samoa beat England 14-12 in a match of former champions to reach the quarter-finals along with defending champ New Zealand and Fiji.
Paul Perez scored a converted try for Samoa right on halftime then Alafoti Fa'osiliva boosted them to 14-5. England scored late but rued Tom Mitchell's missed conversion of their opening try.
Samoa also blanked Argentina 27-0 to win Pool A and lined up a quarter-final with South Africa.
New Zealand accounted for South Africa 19-10 and beat Wales 24-7 to sweep Pool B, only to earn a rematch with Wales in the quarter-finals on Sunday. Wales advanced from the pools as one of the two best third-place teams despite only one win, over the United States.
Fiji cleaned up Pool C by defeating Australia 22-5 and France 26-12, with Metuisela Talebula scoring two tries in both wins.
Allan Fa'alava'au scored a hat trick for Australia in the 29-14 win over Scotland, which came from 12-0 down at halftime to beat France 14-12 on Sean Kennedy's last-gasp try.
Fiji will meet Argentina in the quarter-finals, and Australia take on England.
Canada's national senior women's sevens team dropped a 22-12 semifinal decision to England in a companion event.
With files from The Associated Press.Suggest a correction