Der Limpach ist ein gut 19 Kilometer langer Fluss in den Kantonen Bern und Solothurn. Er entspringt auf einer Höhe von rund 545 Metern über Meer in einem Waldstück nahe der Siedlung Schatthubel auf dem Gemeindegebiet von Grossaffoltern im Kanton Bern. Einige hundert Meter nach seiner Entstehung durchfliesst das hier noch kleine Bächlein den Dufterensee. Danach schlängelt er sich vorbei am Weiler Ottiswil und gelangt dann in den Ort Scheunenberg im Limpachtal. Hier nimmt der Limpach den Golihuebbach von rechts zu sich auf und später bei Wengi den Hoschwerzibach ebenfalls von rechts. Nun fliesst er schnurgerade durch Felder, Äcker sowie das Schutzgebiet Wengimoos. Etwa auf der Höhe des Dorfes Ruppoldsried bildet er für einige Meter die Grenze zwischen den Kantonen Bern und Solothurn und tritt dann bei Balm bei Messen gänzlich ins Solothurnische über.
Nun passiert der Limpach die Ortschaften Messen und Mülchi und lässt jeweils den Messibach und den Mülchibach einfliessen. Nun fungiert er zum zweiten Mal als Grenzfluss zwischen den beiden Kantonen. Er fliesst nun zwischen Unterramsern und Limpach hindurch und durchquert dann bei Aetingen den Golfplatz Limpachtal. Mit dem Einfliessen des Kräiligenbach beim Dorf Kräiligen nördlich von Bätterkinden tritt er wieder vollständig in den Kanton Bern. Wenig später mündet der Limpach auf rund 455m in einem Waldstück von links in die Emme.