Stybar broke away with Philippe Gilbert in the final kilometers of the 206-kilometer (128-mile) stage from Almendralejo to Mairena del Alijarafe and edged the world road race champion at the finish line.
The 27-year-old Stybar won the Eneco Tour this month. His stage win comes one day after Omega Pharma-Quickstep teammate Tony Martin saw his long solo escape come up just short in the final stretch.
"It's a really beautiful day for me and my team after yesterday when Tony was fighting so hard. It was a perfect scenario," Stybar said. "It felt really good. The first stages were really hard for me, but today the win gives me a lot of confidence."
Stybar finished with a provisional time of 4 hours, 51 minutes, 27 seconds.
The flat stage didn't cause any changes at the top of the general classification.
Nibali, the Giro d'Italia champion, kept his 3-second lead over American rider Christopher Horner.
The day ended poorly for the Garmin Sharp team when the peloton passed through Seville, with Tyler Farrar stopping because of a flat tire before Daniel Martin was slowed by a fall.
After two transition stages, the Vuelta returns to the mountains on Saturday with a 167-kilometer (104-mile) ride starting in Jerez de la Frontera and ending in a climb to the category one summit finish at Alto de Penas Blancas.
STAGE 7 RESULTS
1. Zdenek Stybar (Czech Republic / Omega Pharma - Quick-Step) 4:51:27"
2. Philippe Gilbert (Belgium / BMC Racing) ST
3. Robert Wagner (Germany / Belkin) +1"
4. Adrien Petit (France / Cofidis)
5. Juan Antonio Flecha (Spain / Vacansoleil)
6. Andrew Fenn (Britain / Omega Pharma - Quick-Step)
7. Edvald Boasson Hagen (Norway / Team Sky)
8. Danilo Wyss (Switzerland / BMC Racing)
9. Klaas Lodewyck (Belgium / BMC Racing)
10. Reinardt Janse Van Rensburg (South Africa / Argos)
11. Geoffrey Soupe (France / FDJ.fr)
12. Greg Henderson (New Zealand / Lotto)
13. Ramon Sinkeldam (Netherlands / Argos)
14. Michael Matthews (Australia / Orica)
15. Michael Morkov (Denmark / Saxo - Tinkoff)
16. Zakkari Dempster (Australia / NetApp)
17. Grega Bole (Slovenia / Vacansoleil)
1. Vincenzo Nibali (Italy / Astana) 27:29:35"
2. Chris Horner (U.S. / RadioShack) +3"
3. Nicolas Roche (Ireland / Saxo - Tinkoff) +8"
4. Haimar Zubeldia (Spain / RadioShack) +16"
5. Alejandro Valverde (Spain / Movistar) +21"
6. Robert Kiserlovski (Croatia / RadioShack) +26"
7. Rigoberto Uran (Colombia / Team Sky) +28"
8. Daniel Moreno (Spain / Katusha) +31"
9. Rafal Majka (Poland / Saxo - Tinkoff) +38"
10. Roman Kreuziger (Czech Republic / Saxo - Tinkoff) +42"