[2] The Buffalo River is formed at Osseo in northeastern Trempealeau County by the confluence of its North and South Forks, both of which are about 16 miles (26 km) long[1] and rise in northwestern Jackson County; the North Fork has at times been considered the main stem of the river.
At Mondovi the river turns southwestward for the remainder of its course; it flows into the Mississippi River 2 miles (3 km) northwest of Alma.
For the last 5 miles (8 km) of the Buffalo's course, it is surrounded by marshland, before emptying into Rieck's Lake, a migratory stopover for thousands of tundra swans and other waterfowl.
Rieck's Lake empties out into a riverine lake, called Buffalo Slough, part of Pool 4 on the Mississippi River.
According to the Geographic Names Information System, the Buffalo River has also been known as: