In 2012, Felix returned to the Olympic Trials, the schedule of events virtually requiring she choose between attempting to qualify in the 100 m or 400 m as her secondary event behind the 200 m. She chose the 100 m and advanced to the final, the top 3 finishers were to go on to the 2012 Summer Olympics as part of the 100 m team. In the final, she ran 11.01, good enough for 3rd, but not without controversy. Officials ruled Felix and Jeneba Tarmoh to be in a dead heat for the third and final qualification position after initially declaring Tarmoh ahead. A run off between Tarmoh and Felix was scheduled, but Tarmoh withdrew, conceding the final 100 m spot to Felix.
At the 2012 Summer Olympics, Felix competed in four events: The 100 m, 200 m, 4 × 100 m relay, and 4 × 400 m relay, placing 5th in the 100 m and winning gold in the other three, thus becoming the first American woman to win three golds in athletics at an Olympics since Florence Griffith-Joyner at the 1988 Summer Olympics. In her first final, the 100 m, she placed 5th, running a personal best time of 10.89 seconds. In the 200 m final; a race she lost at the 2008 Summer Olympics and 2004 Summer Olympics to Jamaican rival, Veronica Campbell-Brown, it proved third time lucky as she beat Campbell-Brown, and also the 2012 100 m Olympic Gold medallist, Shelly-Ann Fraser-Pryce, who finished second. American compatriot Carmelita Jeter took the bronze.
Felix took to the track again on August 10, 2012 as part of the women's 4 × 100 m relay team with Tianna Madison, Bianca Knight, and Carmelita Jeter. The foursome went on to smash the long-held world record of 41.37, set by East Germany in October 1985. This record was set before Allyson Felix, Bianca Knight, or Tianna Madison were even born.