De N12 is een nationale weg in Zuid-Afrika. De weg loopt van George in de provincie West-Kaap naar Witbank in de provincie Mpumalanga.
De weg begint bij George als afsplitsing van de N2. Hiervandaan deelt de N12 een traject met de N9 tot net ten noorden van Natuurreservaat Witfontein. Hier gaan de N12 en de N9 elk hun eigen weg. Via de Outeniquapas bereikt de weg de Kleine Karoo en zwenkt dan langs Oudtshoorn naar het oosten. Via de Meiringspoort gaat de weg daarna naar het noorden de Grote Karoo in. Vanaf Beaufort-Wes loopt de N12 samen met de N1. Vanaf ongeveer 60 kilometer ten zuiden van Victoria-West gaan deze twee wegen weer uit elkaar, waarna de weg uiteindelijk eindigt bij Witbank.
Tussen Beaufort-Wes en Warrenton is de N12 onderdeel van de Trans-Afrikaanse weg 4, de internationale weg tussen Caïro in Egypte en Kaapstad in Zuid-Afrika.