Tanulmányait 1961-től 1965-ig a Bartók Béla Zeneművészeti Szakközépiskolában Kerényi Miklós György növendékeként végezte. Pályafutását 1963-ban a Honvéd Művészegyüttesben kezdte. 1967-től 1971-ig az Állami Népi Együttes tagja, 1971-es operaházi debütálása óta – Don José (Bizet: Carmen) szerepében – az olasz és francia repertoár valamennyi tenor szerepét elénekelte. Első Puccini-főszerepét, Des Grieux-t (Manon Lescaut) 1975-ben énekelte. Az 1977/78-as évadban közreműködött Szokolay Sándor Sámson című operájának ősbemutatóján, amelyben Jephta szerepét bízták rá.
Az 1980/81-es évadtól kezdve B. Nagy János a Magyar Állami Operaház mellett a Duisburg-Düsseldorfi Rajnai Német Operában is rendszeresen fellépett. A két anyaszínház mellett, rendszeresen szerepelt Európa vezető operaházaiban is.
Hanglemezfelvételei
Recondita armonia című árialemezét a külföldi hanglemezkritika egyöntetűen elragadtatott jelzőkkel méltatta. 1983-ban címszereplésével rögzítette a Hungaroton Arrigo Boito Nerone című operáját. A Giuseppe Patané vezényletével rögzített Simon Boccanegra 1984-ben „Az év hanglemeze” lett. 1987-ben, Lamberto Gardellivel vette fel a Hungaroton Verdi: Attila című operáját.
Oratóriumfelvételei között kiemelkedő nemzetközi fogadtatásra találtak Kodály-interpretációi.