A goal after 57 seconds by Switzerland forward Haris Seferovic was enough for a 1-0 win in Geneva despite late pressure by Portugal including two scoring chances for 39-year-old captain Pepe playing as an emergency forward.
Portugal's slip, after letting Ronaldo skip the last game of a long season, let Spain take first place in Group 2 with a 2-0 win over the Czech Republic in top-tier League A.
Goals midway through each half from Carlos Soler and Pablo Sarabia lifted Spain one point clear of Portugal after four rounds. The last two rounds will be played in September.
Portugal had gone unbeaten in five games this year starting with two wins in its World Cup qualifying playoffs in March and including a 4-0 rout of the Swiss last weekend.
The Swiss had gone in the other direction with a five-match winless run since qualifying for the World Cup ahead of group rival Italy in November.
Portugal barely had time to miss Ronaldo, or touch the ball much, when falling behind within one minute. A quick series of passes linked by Xherdan Shaqiri lined up right back Silvan Widmer for a dangerous cross.
It found Seferovic, who plays in Portugal for Benfica, to guide a header into the far bottom corner of the net.
Shaqiri was preparing to take a penalty kick 10 minutes later, after his cross struck the hand of left-back Nuno Mendes, but a video review found a foul in the center circle in the buildup.
Starting on the bench after a tiring season in England and the Champions League, Bernardo Silva and Diogo Jota were sent on after an hour and within seconds Silva lashed a shot that was punched clear by Swiss goalkeeper Jonas Omlin.
Omlin impressed with eight saves though almost gifted Silva a goal in the 67th. His misjudged pass from the goalmouth rebounded off the Portugal forward close enough to the 'keeper that he could dive on the loose ball.
Erling Haaland made it a 42-goal season tally in all competitions by scoring another double against Sweden to lead Norway to a 3-2 win over its Nordic rival.
The striker, who recently signed for Manchester City from Borussia Dortmund, also netted twice against Sweden last Sunday in a 2-1 win for Norway in the first of the teams' double-header this month in League B.
A week later in Oslo, Haaland darted in front of a defender to head home his first goal in the 10th minute and converted a penalty early in the second half to make it 2-0.
The 21-year-old star now has 20 goals in 21 senior international appearances with 13 of them scored this season. Haaland also tallied 29 for Dortmund.
Emil Forsberg curled a shot into the top corner to reduce the deficit for Sweden, only for Haaland to curl over a cross that was met with a far-post header by Alexander Sørloth.
Sweden's second goal, from Viktor Gyökeres, came in the fifth and final minute of stoppage time.
Norway leads Group 4 on 10 points, three points clear of Serbia which wasted a two-goal, first-half lead in Slovenia to draw 2-2.
LEAGUES C AND D
A Bulgaria team whose bus was involved in a road accident crash soon after arriving in Georgia drew 0-0 in Tbilisi.
Midfielder Todor Nedelev underwent a successful operation for a head injury sustained in the crash on Friday.
Georgia leads the third-tier Group 4 by three points from North Macedonia which beat last-place Gibraltar 4-0.
Group 2 leader Greece beat second-place Kosovo 2-0 to give coach Guy Poyet's team a six-point lead in the standings.
Northern Ireland and Cyprus stayed winless in the group and each has two points after their 2-2 draw in Belfast. Defender Jonny Evans leveled for the hosts deep in stoppage time.
In League D, Malta beat San Marino 1-0.