Quintana (Movistar) attacked with Thibaut Pinot (FDJ) and Vincenzo Nibali (Bahrain-Merida) midway up the final climb before accelerating away by himself to take the stage and the leader's pink jersey.
He finished 24 seconds ahead of second-placed Pinot and Tom Dumoulin (Team Sunweb), with Nibali slipping back to finish one minute behind.
Quintana leads by 28 seconds from Pinot ahead of Monday's rest day, with Dumoulin two seconds further adrift in third place.
Bauke Mollema (Trek-Segafredo) is 51 seconds behind in fourth and Nibali is fifth, 1min 10secs behind.
"I knew it was important to open some distance with the biggest rivals before the TT," Quintana said.
"After my first attack I saw Pinot and Nibali being able to follow, but I continued to make attacks, one after another, until I was able to finally open a gap and carry on. I just gave everything that I had - I'm so happy I ended up winning this stage and also wearing the Maglia Rosa before the rest day.
"There's still a long way to go in this Giro. We'll see after Tuesday's TT if these 30 seconds over Dumoulin are many or too few, but for the time being, I'm feeling good, with strong health, good legs, and that's what really matters so early in this race.
The peloton clipped a police motorcycle parked on the side of the road causing a number of riders to crash heavily, including Team Sky's Geraint Thomas and Mikel Landa and other general classification favourites, effectively placing them out of contention for the overall title.
"It's ridiculous. That shouldn't happen. We were all racing for the bottom of the climb," Thomas said.
"Next thing I know someone in front of me hits the motorbike, we go down. My shoulder popped out (of its socket) as well.
"I felt good, then I crashed. That was it. Race over. It's really disappointing.
"I'm a bit angry at the minute."