Zwei Landschaftstypen prägen den Kanton St.Gallen: Die Alpen im Süden und das Mittelland im Norden. Der höchste Punkt St.Gallens ist der Ringelspitz (3'247 Meter über Meer) an der Grenze zum Kanton Graubünden.
Der tiefste Punkt liegt am Bodenseeufer auf einer Höhe von rund 396 Metern über Meer.
Etwas mehr als die Hälfte der St.Galler Bevölkerung lebt in den breiten Tälern im Süden des Kantons: im Rheintal, Seeztal, der Linthebene und dem Toggenburg. Durch diese Täler fliessen die wichtigsten Flüsse St.Gallens: der Rhein, die Thur (im Toggenburg), die Linth und die Seez. Ihre Talauen sind bedeutende Grundwasserträger und werden für die Trinkwasserversorgung genutzt.
St.Gallen grenzt an drei Länder. Im Norden an Deutschland, im Osten an Österreich und das Fürstentum Liechtenstein. Bodensee, Walensee und Zürichsee liegen teilweise auf dem Gebiet des Kantons. Der Bodensee gehört zur Schweiz, Österreich und zu einem grossen Teil zu Deutschland. Der Walensee liegt zu etwa gleichen Teilen in Glarus und St.Gallen. Den Zürichsee schliesslich teilen sich die Kantone Schwyz, St.Gallen und Zürich, dem der grösste Teil gehört.
Im Kanton St.Gallen wird knapp die Hälfte (48 Prozent) der Fläche landwirtschaftlich genutzt. Weitere 31 Prozent der Fläche sind von Wald bedeckt. Nur neun Prozent sind Siedlungsfläche, die übrigen 13 Prozent der Fläche bestehen aus Fels und Gewässern.