The Belgian rider beat Francesco Gavazzi, Michael Albasini, Luca Mesgec and Juan Jose Lobato to the line.
The win sees Meersman move to third in the GC standings behind Chris Froome and Andrew Talansky.
Marcus Burghardt (BMC), Steven Kruijswijk (Blanco), Julien Berard (AG2R), Kevin Reza (Europcar) and Matthias Brändle (IAM) escaped after 30km of the 181km stage that started and finished in the town of Payerne, on the eastern banks of Lake Neuchatel.
They built up a maximum lead of 4:20 over the peloton but their lead was whittled down as they tackled two category two climbs.
And they were caught inside the final 50km ahead of two category three ascents.
There was a series of counter-attacks on the final climb to Chables, 20km from home, but the sprinters' teams limited any break with Adriano Malori caught shortly after the Flamme Rouge by the Omega Pharma - Quick-Step team of Meersman to set up a bunch gallop to the line where the 27-year-old from Tielt claimed his fourth World Tour stage victory of the season.
Meersman said. "The team did a great job today, did a perfect leadout and I'm really happy with my second victory at Tour de Romandie. It maybe looked easy in the final but it was not so easy.
"With two kilometres to go I knew the guys had something left in the tank to catch Malori ahead (Lampre-Merida). Tony Martin took me to the last 600 or 700 meters. It was perfect.
"As for tomorrow, I'm going to help the boys now. Before coming here I had three stages in mind. The first stage I won, then yesterday I was third, and today I won again. So, I am happy."
Stage 3 results:
1. Gianni Meersman (Belgium / Omega Pharma - Quick-Step) 4:19:03" 2. Francesco Gavazzi (Italy / Astana) ST 3. Michael Albasini (Switzerland / Orica) 4. Luka Mezgec (Slovenia / Argos) 5. Juan Jose Lobato (Spain / Euskaltel) 6. Danilo Wyss (Switzerland / BMC Racing) 7. Rinaldo Nocentini (Italy / AG2R) 8. Roberto Ferrari (Italy / Lampre) 9. Reinardt Janse Van Rensburg (South Africa / Argos) 10. Xavier Florencio (Spain / Katusha)
Road-Tour de Romandie classification after stage 3
1. Chris Froome (Britain / Team Sky) 13:53:16" 2. Andrew Talansky (U.S. / Garmin) +6" 3. Gianni Meersman (Belgium / Omega Pharma - Quick-Step) +9" 4. Robert Kiserlovski (Croatia / RadioShack) +13" 5. Richie Porte (Australia / Team Sky) +15" 6. Rui Costa (Portugal / Movistar) +16" 7. Thibaut Pinot (France / FDJ) +17" 8. Stef Clement (Netherlands / Blanco) 9. Alejandro Valverde (Spain / Movistar) 10. Tom Danielson (U.S. / Garmin)