Im Mai 2011 unterschrieb Leno beim VfB einen Profivertrag bis zum 30. Juni 2014.[5] Zum Beginn der Saison 2011/12 stieg er damit zum dritten Torhüter der ersten Mannschaft auf,[6] wurde jedoch weiterhin als Stammkeeper in der Reservemannschaft eingesetzt.
Bayer 04 Leverkusen
Am 10. August 2011 wurde Leno bis zum Jahresende 2011 an Bayer 04 Leverkusen ausgeliehen, da deren Stammtorhüter René Adler zum Saisonbeginn verletzungsbedingt ausgefallen war.[7][8] Vier Tage nach dem Abschluss dieses auf knapp fünf Monate befristeten Leihgeschäfts gab Leno am zweiten Spieltag sein Bundesligadebüt beim 1:0-Heimsieg der Leverkusener gegen Werder Bremen. Nachdem er am vierten Spieltag beim 0:0-Unentschieden im Heimspiel gegen Borussia Dortmund zum dritten Mal in Folge ohne Gegentreffer geblieben war, wurde Leno vom ZDF-Sportstudio zum Topspieler des Abends gekürt.[9] Vor Leno blieben nur Dirk Krüssenberg und Heribert Macherey in ihren drei ersten Bundesligaspielen ohne Gegentor. Sein Debüt in der Champions League absolvierte Leno am 13. September 2011, dem ersten Spieltag der Gruppenphase in der Saison 2011/12, bei der 0:2-Auswärtsniederlage gegen den FC Chelsea. Mit 19 Jahren und 193 Tagen war er der jüngste deutsche Torhüter, der in der Königsklasse eingesetzt wurde.[10] Knapp vier Jahre später wurde Leno von Timon Wellenreuther abgelöst, der mit 19 Jahren und 77 Tagen in der Champions League spielte.
Zum 1. Januar 2012 wechselte Leno schließlich fest zu Bayer 04 Leverkusen und wurde Stammtorwart. Er unterzeichnete einen Fünfeinhalbjahresvertrag bis zum 30. Juni 2017.[11] Am 23. August 2014 bestritt er gegen Borussia Dortmund sein 100. Bundesligaspiel für die Leverkusener.
Zwischen dem 28. Februar und 11. April 2015 (23. bis 28. Spieltag der Bundesliga-Saison 2014/15) musste Leno während 527 Minuten kein Gegentor hinnehmen und stellte damit einen Vereinsrekord auf, den bis dahin Rüdiger Vollborn aus der Saison 1983/84 mit 485 Minuten gehalten hatte.[12] Am 16. April 2016 konnte Leno während des Spiels gegen Eintracht Frankfurt (30. Spieltag der Folgesaison) den Rekord einstellen; erst am 23. April musste er beim FC Schalke 04 in der 14. Minute wieder ein Gegentor hinnehmen, womit er den Rekord auf nun 588 Minuten erhöhen konnte.[13]
Unmittelbar vor dem ersten Heimspiel der Saison 2016/17 am 10. September 2016 verkündete Bayer 04 Leverkusen, dass Lenos Vertrag bis Ende Juni 2020 verlängert worden sei.[14]
Im August 2022 wechselte Leno innerhalb der Premier League zum Aufsteiger FC Fulham, wo er einen Vertrag bis zum Jahr 2025 unterschrieb.[17] Im Jahr 2024 verlängerte er seinen Vertrag bis zum Jahr 2027.[18]
Am 17. Mai 2016 berief Löw Leno gemeinsam mit ter Stegen hinter Manuel Neuer in den vorläufigen Kader für die EM in Frankreich.[20][21] Sein Debüt gab er am 29. Mai 2016 im Freundschaftsspiel gegen die Slowakei, in dem er von Beginn an aufgeboten wurde und zwei Gegentreffer hinnehmen musste. Er wurde zur zweiten Halbzeit für ter Stegen ausgewechselt. Am 31. Mai 2016 wurde er in den endgültigen EM-Kader berufen.[22] Im Turnier kam Leno nicht zum Einsatz. Die deutsche Mannschaft schied nach einer 2:0-Niederlage im Halbfinale gegen den Gastgeber aus.[23]
Für den im Juni und Juli 2017 stattfindenden Konföderationen-Pokal in Russland wurde Leno in das Aufgebot der deutschen Mannschaft berufen.[24] Er kam beim Turnier beim 3:2-Sieg im ersten Spiel gegen Australien zum Einsatz. Am 2. Juli 2017 gewann er mit der DFB-Elf nach einem 1:0-Finalsieg gegen Chile den Titel.
Zur WM 2018 wurde Bernd Leno in den erweiterten Kader der Nationalmannschaft berufen und nahm am Trainingslager in Eppan teil, reiste jedoch nicht mit zum Turnier in Russland, da er von Bundestrainer Löw nicht in den endgültigen WM-Kader berufen wurde.