De Tweede Slag bij Stirling vond plaats bij de Schotse stad Stirling in 1648 tijdens de Schotse burgeroorlog. De eerste Slag bij Stirling werd in 1297 uitgevochten.
De slag werd gevoerd tussen enerzijds de graaf van Lanerick, en anderzijds de hertog van Argyll. Argyll had ca. 900 manschappen toen hij in de ochtend van 12 september 1648 arriveerde bij Stirling. Terwijl hij dineerde met de graaf van Mar openden Lanerick's troepen, onder leiding van George Munro de aanval, en Argyll sloeg op de vlucht, terwijl hij vanuit Stirling Castle werd beschoten. Argylls troepen waren volledig verrast, en in de slag vonden 200 mannen de dood, terwijl 400 krijgsgevangen werden gemaakt. Toen ze op de vlucht sloegen werden nog een groot aantal soldaten gedood, of ze verdronken terwijl ze de Forth trachtten over te zwemmen.
Buiten Stirling hadden beide bevelvoerders overigens een groot aantal troepen, Lanerick had 4000 man cavalerie en 6000 man voetvolk, Argyll kon beschikken over 3000 ruiters en 8000 soldaten. Er wordt vaak over gespeculeerd wat voor slag zou hebben plaatsgevonden als Munro niet het initiatief genomen een verrassingsaanval uit te voeren.
Alhoewel Munro bij Lanerick aandrong om na de slag bij Stirling de aanval voort te zetten, werden vanaf de 15e september onderhandelingen gevoerd, en kwam het op 29 september daaropvolgend tot een wapenstilstand. Niet lang daarna werden de legers van Lanerick en Argyll samengevoegd en vochten zij in 1650 de Slag bij Carbisdale.