McEwen, who sprinted to a win in Wednesday's fifth stage, outraced Magnus Backstedt of Sweden at the rainy finish of the 142-mile seventh stage in Karlsruhe, Germany. The stage began in Lunaville, France.
Meanwhile, six-time defending champion Armstrong, 33, continued his bid for a seventh Tour de France victory by staying with the pack to finish 53rd and maintain a 55-second overall lead over Discovery Channel teammate and fellow American George Hincapie.
There were no changes in the top overall spots.
Alexandre Vinokourov of Kazakhstan trailed Armstrong by 1 minute and 4 seconds, while Germany's Jens Voigt was 2 seconds slower than Vinokourov.
Saturday's 143.8-mile eighth stage begins in Pforzheim, Germany, heads into the Vosges Mountains and ends in Gerardmer, France.