Von 1994 bis 2001 war Stahl Mitglied des Grossen Gemeinderates der Stadt Winterthur; von 1997 bis 1999 präsidierte er die SVP-Fraktion und im Amtsjahr 2000/2001 den Rat. Bei den Schweizer Parlamentswahlen 1999 wurde er in den Nationalrat gewählt und 2003, 2007, 2011 und 2015 bestätigt. Im Nationalrat gehörte er seit 1999 der Kommission für soziale Sicherheit und Gesundheit, die er im Amtsjahr 2008/2009 präsidierte, und von 2014 bis 2016 der Verwaltungsdelegation an. Ausserdem nahm er Einsitz in die Begnadigungskommission (1999–2011), die Kommission für Umwelt, Raumplanung und Energie (2003–2007), die Aussenpolitische Kommission (2007–2009) und die Kommission für Wissenschaft, Bildung und Kultur (2011–2015). Er war Mitglied der 2013 auf Initiative der Getränkehersteller gegründeten Lobbygruppe für SüssgetränkeIG Erfrischungsgetränke.[2] Zudem war er 2008/2009 Präsident der Parlamentarischen Gruppe Sport. In der Wintersession 2016 wurde er für ein Jahr zum Nationalratspräsidenten gewählt.[3] 2019 trat er aus dem Nationalrat zurück.
Stahl war ab 2008 Mitglied des Exekutivrats und von 2017 bis 2024 Präsident von Swiss Olympic.[4][5] Ehrenamtliche Tätigkeiten nimmt Stahl als Sportfunktionär wahr. Stahl ist ausserdem seit 2016 Zentralpräsident des Schweizerischen Drogistenverbandes[6] und seit 2020 Stiftungsratspräsident des Schweizerischen Nationalfonds.[7]
Er ist seit 2012 verheiratet, Vater einer Tochter und wohnt in Brütten. Im Militär ist er Major und im Stab der Luftwaffe als Einsatzoffizier der Fallschirmaufklärer.