Kota Surakarta

Stasiun kereta api utama bernama Stasiun Solo Balapan yang merupakan salah satu stasiun besar tertua di Indonesia (dibangun 1873) yang menghubungkan Yogyakarta (barat), Semarang (utara), dan Surabaya (timur), dan terletak berdekatan dengan terminal bus Tirtonadi, suatu hal yang jarang dijumpai di Indonesia. Hubungan perjalanan dari setasiun ini cukup baik, mencakup semua kota besar di Jawa secara langsung dan hampir dalam semua kelas. Di Kota Surakarta juga terdapat tiga stasiun kereta api lain. Stasiun Solo Jebres dipakai sebagai stasiun perhentian untuk kereta-kereta api kelas ekonomi atau kereta api relasi Semarang-Madiun. Stasiun Solo-Kota (Sangkrah) merupakan stasiun perhentian untuk jalur KA Purwosari-Wonogiri. Stasiun Purwosari di tepi barat kota merupakan stasiun cabang menuju Wonogiri (selatan). Dulu Purwosari juga merupakan stasiun pemberhentian untuk jurusan Boyolali (barat). Kereta api ekspres ke Jakarta memakan waktu tempuh 10 jam, sementara kereta api ekspres ke Surabaya memakan waktu tempuh 5 jam. Kereta api ekspres yang melalui Surakarta antara lain: Argo Lawu, Argo Dwipangga, Bima dan Gajayana (dari/ke Jakarta, dengan AC), Argo Wilis dan Lodaya (dari/ke Bandung), Argo Wilis dan Sancaka (dari/ke Surabaya). Kereta bisnis malam Senja Utama Solo juga melayani transportasi dari/ke Jakarta.