Weigl werd geboren in Bad Aibling en sloot zich aan in de jeugdopleiding van TSV 1860 München. Op 14 februari 2014 vierde hij zijn debuut voor TSV 1860 München in de 2. Bundesliga, tegen FC Ingolstadt 04. Hij mocht na 66 minuten invallen voor Yannick Stark. FC Ingolstadt 04 won de wedstrijd met 2-0.[3] Tijdens zijn eerste seizoen in de 2. Bundesliga kwam de defensief ingestelde middenvelder tot veertien competitieduels. Het seizoen erop speelde hij 24 competitiewedstrijden. Weigl tekende in juni 2015 een contract van 1 juli 2015 tot medio 2019 bij Borussia Dortmund.[4] Op 9 augustus 2015 maakte hij zijn opwachting voor Borussia Dortmund in het bekerduel tegen Chemnitzer FC.[5] Op 15 augustus 2015 debuteerde Weigl in de Bundesliga tegen Borussia Mönchengladbach.[6]
Weigl debuteerde in 2013 voor Duitsland –19, waarvoor hij vier interlands speelde. Op 13 oktober 2014 maakte hij zijn eerste interlanddoelpunt voor Duitsland –20 tegen Nederland –20. Op 17 mei 2016 werd Weigl opgenomen in de selectie van het Duits voetbalelftal voor het Europees kampioenschap voetbal 2016 in Frankrijk.[7] Duitsland werd in de halve finale uitgeschakeld door Frankrijk (0–2), na in de eerdere twee knock-outwedstrijden Slowakije (3–0) en Italië (1–1, 6–5 na strafschoppen) te hebben verslagen.