Best known as a climber, Mollema sheered away from a front group of around 35 riders to take victory a few metres clear of Norway's Edvald Boasson Hagen, with Argentina's Massimo Richeze in third. Italy's Vincenzo Nibali remains the overall race leader.
"I had thought of going for the overall but I could see pretty quickly in the first part of the race that wasn't going to happen," said Mollema, sixth in the Tour de France.
"Instead of fighting for 15th or 20th in Madrid, I decided to go for stage wins. I already got third in one stage, and today it's all paid off.
"There's only four Belkin riders left in the Vuelta, but I think the morale in the team hotel will be pretty high tonight," he added.
On a fast-paced chaotic stage, a mass attack by Spanish squad Movistar and Danish team Saxo-Tinkoff 25 kilometres from the finish of the flat 189-km stage split the bunch into several groups.
"We'd been warned by our team management there would be a dangerous point in the race with around 25 kilometres to go where it could split in the winds, and that's what happened," Mollema said.
"We got three of our four guys in the front group, so that was pretty good.
"Then I was waiting for the right moment, and with 500 metres to go I shot away and didn't look back until I had 50 metres left to go."
With all the main favourites in the front group, Nibali stayed 28 seconds ahead of American Chris Horner in the overall standings with Spain's Alejandro Valverde 1:14 behind the Italian.
Nicolas Roche of Ireland moved up to fifth overall ahead of Italy's Domenico Pozzovivo, who dropped to sixth.
On Thursday, the Vuelta returns to the mountains with a 186.5-km stage culminating with a six kilometre, lung-bursting steep ascent to Pena Cabarga in northern Spain.
"It's a climb I like very much. I have very good memories of it," said Nibali, who took the lead of the 2010 Vuelta at Pena Cabarga.
"I did very well there before and maybe I'll do something this time round again, perhaps go on the attack." The Tour of Spain finishes on Sept. 15 in Madrid.
Stage 17 Results
1. Bauke Mollema (Netherlands / Belkin) 4:44:28"
2. Edvald Boasson Hagen (Norway / Team Sky) ST
3. Maximiliano Richeze (Argentina / Lampre)
4. Tyler Farrar (U.S. / Garmin)
5. Fabian Cancellara (Switzerland / RadioShack)
1. Vincenzo Nibali (Italy / Astana) 68:50:29"
2. Chris Horner (U.S. / RadioShack) +28"
3. Alejandro Valverde (Spain / Movistar) +1:14"
4. Joaquim Rodriguez (Spain / Katusha) +2:29"
5. Nicolas Roche (Ireland / Saxo - Tinkoff) +3:43"