Evans and Contador were among the leaders heading into the final minutes of the stage with several other riders but pulled away with Evans taking the tape for his second career Tour de France stage win.
He finished the 107.2-mile route from Lorient to Mud-de-Bretagne in western France in 4 hours, 11 minutes and 39 seconds. Contador was listed second and Alexandre Vinokourov was third. The first 10 riders, which included overall race leader Thor Hushovd, were given the same time.
Hushovd owns a 1-second lead ahead of Evans in the overall standings with Frank Schleck 4 seconds off the pace and David Millar 8 seconds behind. Contador, who won the Tour de France three of the last four years, is in 41st, 1 minute, 42 seconds behind Hushovd.
Wednesday's fifth stage covers 102.2 miles from Carhaix to Cap Frehel in northwestern France.