The race is a traditional barometer of form for the Tour, where Froome is defending champion, and he looked strong as he won the 156km stage to Col du Beal in France in four hours 24 minutes 41 seconds.
The Team Sky rider also landed Sunday's short time trial but Monday's stage was the first real duel this year with Contador who is likely to be his main rival at the Tour.
After the peloton hauled in a breakaway by Alessandro de Marchi with 7.5km remaining, Froome repeatedly attacked.
Twice Tour champion Contador tried to turn the screw in the final 300 metres but the Briton responded with a burst of power that saw him cross the line first and stretch his overall lead over the second-placed Spaniard to 12 seconds.
Tuesday's third stage is a 194km ride from Ambert to Teil.
1. Chris Froome (Britain / Team Sky) 4:37:44" 2. Alberto Contador (Spain / Tinkoff - Saxo) +12" 3. Wilco Kelderman (Netherlands / Belkin) +21" 4. Andrew Talansky (U.S. / Garmin) +33" 5. Jurgen Van den Broeck (Belgium / Lotto) +35" 6. Vincenzo Nibali (Italy / Astana) +50" 7. Haimar Zubeldia (Spain / Trek) +1:22" 8. Jakob Fuglsang (Denmark / Astana) 9. Adam Yates (Britain / Orica) +1:31" 10. Tanel Kangert (Estonia / Astana) +1:35"
- Sports & Recreation