Viviani held off Gianni Meersman of Belgium and Tony Gallopin of France, clocking 4 hours, 39 minutes, 15 seconds over the 191-kilometre ride from the French Alpine village of Chatel to Oyonnax in eastern France.
Four riders broke away from the main pack shortly after the start: French trio Thomas Damuseau, Arnaud Gerard and Rudy Molard and Portuguese rider Jose Mendes. Molard lasted the longest, eventually being caught about 15 kilometres out.
Viviani attacked a little more than 2 kilometres from the line.
Veilleux keeps the yellow jersey, leading by 1:56 overall from Meersman and 1:57 from Gallopin.
Results from the second stage of the Criterium du Dauphine over 191km from Chatel to Oyonnax on Monday:
Stage:
1. Elia Viviani (ITA/CAN) 4hr 39min 15sec, 2. Gianni Meersman (BEL/OPQ) same time, 3. Tony Gallopin (FRA/RSH) s.t., 4. Reinardt Janse Van Rensburg (RSA/ARG) s.t., 5. Anthony Geslin (FRA/FDJ) s.t., 6. Armindo Fonseca (FRA/BSC) s.t., 7. Bram Tankink (NED/BLA) s.t., 8. Warren Barguil (FRA/ARG) s.t., 9. Juan Antonio Flecha (ESP/VAC) s.t., 10. Wesley Sulzberger (AUS/ORI) s.t., 11. Geraint Thomas (GBR/SKY) s.t., 12. Daniel Moreno (ESP/KAT) s.t., 13. Alejandro Valverde (ESP/MOV) s.t., 14. Paul Voss (GER/APP) s.t., 15. Luis ngel Mat (ESP/COF) s.t.
Selected others:
23. Chris Froome (GBR/SKY) s.t., 27. Richie Porte (AUS/SKY) s.t., 34. Alberto Contador (ESP/SAX) s.t., 38. Samuel Sanchez (ESP/EUS) s.t., 43. Joaquim Rodriguez (ESP/KAT) s.t., 55. Damiano Cunego (ITA/LAM) s.t., 62. David Veilleux (CAN/EUC) s.t.
Overall standings:
1. David Veilleux (CAN/EUC) 7h56:50, 2. Gianni Meersman (BEL/OPQ) 1:56, 3. Tony Gallopin (FRA/RSH) 1:57, 4. Warren Barguil (FRA/ARG) s.t., 5. Alejandro Valverde (ESP/MOV) s.t., 6. Jakob Fuglsang (DEN/AST) s.t., 7. Chris Froome (GBR/SKY) s.t., 8. Richie Porte (AUS/SKY) s.t., 9. Angel Madrazo (ESP/MOV) s.t., 10. Geraint Thomas (GBR/SKY) s.t., 11. Jrgen Van den Broeck (BEL/LTB) s.t., 12. Thomas Rohregger (AUT/RSH) s.t., 13. Dominik Nerz (GER/BMC) s.t., 14. Alberto Contador (ESP/SAX) s.t., 15. Christophe Le Mvel (FRA/COF) s.t.
Selected others:
18. Samuel Sanchez (ESP/EUS) s.t., 27. Joaquim Rodriguez (ESP/KAT) s.t., 65. Damiano Cunego (ITA/LAM) 2:38