Aux Jeux olympiques, organisés au All England Lawn Tennis and Croquet Club de Wimbledon, il bat Alejandro Falla au premier tour sur le score de 6-3, 5-7, 6-3. Au , il s'impose face au Français Julien Benneteau en deux sets (6-2, 6-2). Il continue en éliminant Denis Istomin en huitième de finale (7-5, 6-3) et le mondial, John Isner en quart de finale (6-4, 7-6) pour s'adjuger une place en demi-finale. Il rencontre Juan Martín del Potro mondial, qu'il bat lors d'un match historique puisqu'il se défait de l'Argentin sur le score final de (3-6, 7-6, 19-17) en de jeu, ce qui en fait le match au meilleur des trois sets le plus long de l'histoire de l'ère open. Grâce à cette victoire, Federer se qualifie pour la finale et s'assure l'obtention d'une médaille olympique en simple. En finale, il perd sèchement face à Andy Murray (2-6, 1-6, 4-6) mondial remportant son premier gros titre, et le Suisse fatigué de son précédent match contre l'Argentin n'a pas pu suivre. Il obtient donc la médaille d'argent à l'issue de ces Jeux Olympiques.