Elle participe aux Jeux olympiques d'été de Londres et réalise un parcours exceptionnel. En tournoi simple, elle bat au premier tour Jelena Janković, numéro 1 en 2008, (6-3, 6-1). Elle bat ensuite au Urszula Radwańska (6-2, 6-3). Au troisième tour, elle affronte Vera Zvonareva et s'impose 6-1, 6-0. En quart de finale, elle rencontre l'ex numéro 1 Caroline Wozniacki dont elle se défait facilement (6-0, 6-3). En demi-finale, elle joue contre la numéro 1 mondiale, Victoria Azarenka mais ne lui laisse aucune chance et remporte le match (6-1, 6-2). Elle se retrouve alors en finale face à Maria Sharapova qu'elle bat (6-0, 6-1). Elle remporte ainsi la médaille d'or des Jeux olympiques 2012. Serena fait également un parcours sans faute en double dames qu'elle joue avec sa sœur Venus Williams. Elles se hissent jusqu'en finale en écartant la Roumanie (Sorana Cîrstea et Simona Halep), l'Allemagne (Angelique Kerber et Sabine Lisicki), l'Italie (Sara Errani et Roberta Vinci) tête de série numéro 2 et la Russie (Maria Kirilenko et Nadia Petrova) pour atteindre leur troisième finale du double dames des Jeux olympiques en trois participations. Les sœurs conservent leur titre olympique dans le double dames des Jeux de Londres, en battant les Tchèques Andrea Hlaváčková et Lucie Hradecká en deux sets 6-4, 6-4, à Wimbledon. C'est le troisième titre pour les sœurs Williams qui avaient été sacrées à Sydney en 2000 et à Pékin en 2008. De plus, elle devient aussi la première joueuse de tennis à remporter les 4 tournois du grand chelem en simple, en double ainsi que l'or olympique en simple et en double.