In 1944, aged 28, he made his debut with the New York City Opera as Morals in Carmen. Later that year, he won the Metropolitan Opera's 'Auditions of the Air," which garnered him a $1,000 prize and a Met contract. He made his debut with the company singing Schaunard in La bohme, a role that became a trademark. Other frequently performed parts included Faninal in Der Rosenkavalier and Nachtigall in Die Meistersinger von N‹rnberg.
The warden Frank in Garson Kanin's 1950 staging of Die Fledermaus became another trademark; he sang 31 Met performances of the role, the last of which was broadcast on CBS's Omnibus.
In total, he sang 238 performances at the Met between 1944 and 1953.
Thompson also worked as a director, staging Le nozze di Figaro in St. Louis in 1955 and La bohme at the Met in 1963.