Lehner begon zijn carrière bij TSV Schwaben Augsburg. In 1935 promoveerde hij met zijn club naar de Gauliga Bayern. Na één seizoen degradeerde de club als laatste uit de reeks. Lehner wilde een transfer naar stadsrivaal BC Augsburg, dat wel nog in de Gauliga speelde, maar dit werd verhinderd. In 1940 werd hij in het leger naar Berlijn gestuurd en ging daar voor de succesvolle club SpVgg Blau-Weiß 1890 Berlin spelen. In 1941/42 bereikte hij met de club de halve finale van de titel, die ze verloren van First Vienna FC. Na twee jaar keerde hij terug naar Augsburg. Na de oorlog speelde hij nog tot 1947 voor Augsburg en beëindigde dan zijn carrière bij Viktoria Aschaffenburg, waar hij in het laatste seizoen spelertrainer werd.
Hij speelde ook 65 wedstrijden voor het nationale elftal. Zijn eerste wedstrijd speelde hij op 19 november 1933 tegen Zwitserland. Hij werd ook opgenomen in de selectie voor het WK 1934. Duitsland bereikte de halve finale, waarin ze verloren. In de wedstrijd om de derde plaats tegen Oostenrijk scoorde Lehner al na 25 seconden. In de 42ste minuut scoorde hij ook de 3-1. Hij scoorde 31 keer en was lange tijd topschutter van de Mannschaft, Fritz Walter stak hem in 1955 voorbij. Tot 2006 stond hij nog in de top tien, maar werd er toen door Miroslav Klose en Michael Ballack uitgekegeld. Hij was ook speler van de Breslau-Elf die in 1937 Denemarken verpletterden met 8-0.
Het Ernst-Lehner-Stadion in Augsburg, met 5.000 zitplaatsen en speelstadion van TSV Schwaben is naar hem vernoemd.