Blanco's Mollema beat Swiss Mathias Frank and Frenchman Thibaut Pinaut by 11 seconds at the end of the 119.2-kilometre stage from Ulrichen to the Crans-Montana ski resort in the canton of Valais.
The course should have been 161.3 kilometres long but snow caused several mountain passes, including the 2,478-metre Nufenenpass, to be closed, shortening the race.
Orica-GreenEdge's Meyer, who won the first stage time-trial, now leads 2012 Giro d'Italia winner Ryder Hesjedal of Canada by three seconds with Frank two seconds further back.
Hesjedal was the one who livened things up in the peloton on the final climb up to Crans-Montana.
After his Garmin-Sharp teammate Daniel Martin had put in a good shift on the front of the bunch, the Canadian attacked alongside Astana's Tanel Kangert.
With five kilometres left, Hesjedal went it alone and at one point had a 30-second lead on the peloton.
But he was eventually reeled in as Italian Domenico Pozzovivo and American Tejay van Garderen put in bursts that brought him back into view.
Mollema attacked with 800m left and passed Hesjedal with 500 metres to go before opening up an 11-second gap by the finish line.
Although beaten by Frank and Pinot in the sprint, Hesjedal came home in a seven-strong group on the same time.
Monday's third stage will take the peloton over 204.9 kilometres from Montreux to Meiringen.
Story continues below…