The quake struck at 9.12pm at a depth of 5km under the summit of the Ortstock mountain in the canton of Glarus, around 6km west of the town of Linthal, the SED announced on its website.
While no damage was reported, police in the cantons of Glarus and Schwyz told news agency ATS they received dozens of calls from worried residents who felt the quake.
The SED said it received reports that the quake was also felt in the cantons of Bern, Aargau, Zurich and Graubünden.
So many people visited the SED's website after the earthquake that it crashed, said the service.
About a dozen aftershocks were detected after the main event, with more to be expected in the coming days.
“It is unlikely that there will be an earthquake with a similar or even larger magnitude than the main shock but this cannot be excluded,” it added.
Statistically earthquakes of this size happen once every few years in Switzerland.
The last quake of a similar magnitude occurred just over the French border in Vallorcine in 2005 but was felt widely in the Swiss canton of Valais, said the SED.
Last year's biggest quake was only slightly smaller, registering 4.1 on the Richter scale, and occurred near Leukerbad in the Valais in October.
Earthquakes are common in Switzerland, with around 500-800 occurring every year, but most are so light they can't be felt.
Around ten quakes of between 3 and 4 magnitude hit the country every year, with a 4+ quake expected every 1-3 years.
Strong earthquakes, classified of 6 magnitude or above, occur once every 50-150 years.
The last, a 6.2, hit Sierre in 1946, meaning Switzerland is due another large one by around 2040, geologists have said.
The country's strongest documented earthquake, a 6.6 on the Richter scale, hit Basel in 1356.
Switzerland experienced 880 earthquakes in 2016, slightly more than the 40-year average, but such variations are normal, according to the SED.