En 2021, ce sont 26 candidates et candidats qui se sont lancés dans la course à la municipalité de Lausanne, dix de plus que lors des élections précédentes en 2016. La majorité rose-verte composée du PS, des Vert-e-s et du POP, qui formait habituellement une alliance, s'est cette fois-ci désunie. Ceci s'explique par la volonté des écologistes, poussés par la vague verte, de briguer un troisième siège (sur sept). Natacha Litzistorf (verts) se présentait ainsi pour un nouveau mandat. Afin d'atteindre les ambitions du parti, elle était accompagnée par Daniel Dubas (verts) et Xavier Company (verts), alors que Jean-Yves Pidoux (verts) ne se représentait pas, après trois mandats à l'exécutif lausannois. Les socialistes lançaient Emilie Moeschler pour succéder à Oscar Tosato aux côtés des sortants Florence Germond et Grégoire Junod. Affaibli par la rupture de l'alliance de gauche, le popiste David Payot espérait conserver son siège acquis en 2016. Seul représentant de la droite durant la dernière législature, le libéral-radical Pierre-Antoine Hildbrand briguait un second mandat, avec dans son sillage sa colistière Florence Bettschart-Narbel, pour tenter de rééquilibrer un exécutif qui penchait trop à gauche selon le PLR. D'après 24 Heures, c'est entre ces neufs candidatures qu'allaient se jouer les sept sièges à pourvoir. La possibilité d'un exécutif composé uniquement des politiciennes et politiciens de gauche, envisageable si les Vert-e-s parvenaient à ravir le siège libéral-radical, n'était cependant pas souhaitable, selon le président des socialistes lausannois Denis Corboz. Parmi les autres candidatures, on retrouvait cinq membres de l'UDC et du PLC (parti libéral-conservateur), qui se regroupaient sous la même bannière, cinq ans après la création du mouvement sécessionniste suite à l'exclusion de Claude-Alain Voiblet de l'UDC Vaud. Les Vert'libéraux proposaient deux candidats à l'exécutif, alors qu'Ensemble à Gauche en présentait quatre. Le Parti scientifique citoyen avait trois candidats en lice, le Centre deux et l'Action nationale et chrétienne un. L'objectif de ces candidatures étaient selon les médias avant tout de gagner en visibilité pour tirer la liste de leur parti au Conseil communal.
Le 7 mars 2021, lors du premier tour, aucun candidat n'a atteint la majorité absolue, fixée à 16'349 voix. Les trois socialistes sont arrivés en tête. Grégoire Junod a récolté 15'882 suffrages, Florence Germond 15'535 et Emilie Moeschler 14'917. Derrière eux, David Payot a réalisé un très bon score avec 14'460 voix. Pari manqué pour les Vert-e-s, qui ont placé Natacha Litzenstorf en cinquième position avec 10'782 voix, alors que Daniel Dubas et Xavier Company ont terminé respectivement septième et huitième avec 8'557 et 8'320 suffrages, nettement devancés par Pierre-Antoine Hildbrand (9'519 voix). La deuxième candidate libérale-radicale Florence Bettschart-Narbel a pris le neuvième rang avec 8'101 voix. Comme prévu, les autres formations ont fini loin derrière. La participation s'est élevée à 37,65 pour cent.
En vue du deuxième tour, les Vert-e-s ont décidé de retirer un de leurs candidats, permettant ainsi à l'alliance de gauche de se reformer. Cependant, la surprise venait du fait que cela soit Daniel Dubas qui se retire au profit de Xavier Company, pourtant moins bien élu que lui. Dans les rangs écologistes, ce choix a été justifié par la volonté de présenter un candidat jeune – Xavier Company a 32 ans – qui répondait mieux aux préoccupations de la Grève du climat et de la Grève féministe. Le PLR repartait au combat avec ses deux candidat.e.s, conservant l'espoir de conquérir un deuxième siège. Bruno Dupont, de l'Action nationale et chrétienne, restait lui aussi dans la course.
Le deuxième tour, qui a eu lieu le 28 mars 2021, n'a été le théâtre d'aucune surprise. Les six membres de l'alliance de gauche ont été élus. Comme au premier tour, Grégoire Junod a reçu le plus grand nombre de suffrages avec 15'604 voix, suivi par Florence Germond avec 15'346 voix, Emilie Moeschler avec 15'244 voix, Natacha Litzistorf avec 15'205 voix, David Payot avec 14'733 voix et Xavier Company avec 14'497 voix. Le dernier siège est revenu à Pierre-Antoine Hildbrand avec 10'070 voix. Florence Bettschart-Narbel n'a pas été élue, son total de 9'136 voix ne suffisant pas à accéder à l'exécutif. La composition de la Municipalité de la ville de Lausanne reste ainsi identique à la législature précédente, avec six représentantes et représentants de la gauche pour un seul de la droite. Le socialiste Grégoire Junod entame un deuxième mandat en tant que syndic. En baisse par rapport au premier tour, la participation s'est élevée à 27,45 pour cent. Dans le Temps, le manque de changement au sein de l'exécutif a été quelque peu critiqué. S'indignant de la «discipline presque soviétique» avec laquelle les électeurs et électrices renouvelaient leurs autorités, le journal romand relevait que la ville fait face à un «endettement problématique» qui mériterait d'être pris à bras-le-corps. La discrétion de David Payot durant son premier mandat et la stratégie électorale hasardeuse des Vert-e-s, qui furent évoqués à plusieurs reprises durant la campagne, faisaient dire au Temps que la gauche lausannoise peut s'estimer heureuse du résultat de cette élection. Le quotidien déclarait ainsi que la campagne électorale s'avérait peu utile si le résultat dans les urnes restait toujours le même et espérait néanmoins que les élu.e.s sauraient relever les défis qui attendent la cité vaudoise.
S'agissant du Conseil communal, 100 mandats étaient à répartir entre les 10 listes comportant au total 396 candidates et candidats. Aucun siège n'a été attribué au Centre, à Juste Milieu, à l'Action nationale et chrétienne et au Parti scientifique citoyen, qui n'ont pas atteint le quorum. L'alliance de gauche a remporté 66 sièges – 29 pour le PS, 24 pour les Vert-e-s et 13 pour Ensemble à Gauche, qui regroupait le POP, solidaritéS et des personnes indépendantes. 21 mandats sont revenus au PLR, 7 à l'UDC et 6 aux Vert'libéraux. Le Conseil communal reste ainsi lui aussi entre les mains de la gauche.
Au niveau cantonal, la plus grande progression est à mettre à l'actif des Vert-e-s, qui ont gagné 102 sièges dans les législatifs des quinze plus grandes villes du canton pour passer de 150 à 252 mandats. Cette progression s'est faite au détriment des libéraux-radicaux, qui ont subi le plus fort recul parmi les autres partis. L'UDC et le PS ont néanmoins eux aussi cédé du terrain aux Vert-e-s. En ville de Lausanne, la progression des Vert-e-s (+7 sièges) contraste avec les déboires de l'UDC et du PLR, qui perdent cinq sièges à eux deux. Autre fait marquant, le Conseil communal de Lausanne sera à majorité féminine pour la nouvelle législature.