Bern, the Swiss capital, Zurich and Lucerne were among the cities the hardest hit by the torrential rain, which followed a heat wave with temperatures above 30C.
A 32-year-old woman and her five-year-old daughter died in Dierikon in the canton of Lucerne, according to state broadcaster SRF.
The pair were surprised by flooding in the basement of their house and drowned, SRF reported, citing information from cantonal police.
The heavy rain turned streets in the city of Lucerne into rivers, including the area near the train station.
The road to the Swiss Transport Museum in the city was closed because of high water and “manhole covers were washed away”, SRF said.
Elsewhere in the canton, a stream swelled beyond its banks in the village of Udligenswil, flooding the community, news agency ATS said.
The road between this village and Küssnacht was closed to traffic in both directions.
A mudslide cut the road linking Thun and Interlaken in the canton of Bern, while the Aar River threatened to overspill its banks in Bern, ATS reported.
In the city of Zurich and elsewhere in the canton fire fighters were called to deal with 350 cases of flooding.
Another landslide disrupted rail traffic between Birmensdorf and Zurich Altstetten, forcing the cancellation of numerous trains.
Swiss Federal Railways laid on a replacement bus service to assure links for passengers.
The rain fell heavily in several regions but was of relatively short duration, according to national weather office MeteoSwiss.
The office is forecasting more thunderstorms on Monday afternoon in various parts of the country, including the Jura Mountains, the canton of Uri and the canton of Ticino.