On August 4, 2012, at the London Olympic Games, Rupp took a surprise silver medal in the 10,000 m behind his training partner Mo Farah, with a time of 27:30:90, after running his last lap in 53.8 seconds. This was the first time a U.S. man had medaled in the Olympic 10,000 m in 48 years, the last medal being Billy Mills's gold in the 1964 Olympics. On August 8, 2012, Rupp advanced to the final of the 5000 m with a sixth-place finish in 13:17.56. On August 10, in the 5000 m Olympic final, Rupp placed seventh in 13:45.04.