Sông được hình thành nên tại Quận Glacier ở tây bắc bang Montana, 21 dặm (34 km) về phía bắc của Browning, Montana, tại nơipj lưu giữa nhánh Bắc và Nam của nó. Nhánh Nam dài 30 dặm (48 km) và Nhánh Bắc dài 20 dặm (32 km), cả hai đều khởi nguồn từ dãy núi Rocky ngay phía đông của Vườn quốc gia Glacier, tại Vùng đất giành riêng cho người Indien Blackfeet.[4] Phần lớn nước của nhánh Bắc được chuyển hướng từ Sông St. Mary thông qua một kênh đào và xiphông đảo.[5]
Dòng chảy hướng về phía đông-đông bắc vào đến miền nam của Alberta, tại đây nó hợp lưu với Nhánh Bắc, sau đó chảy theo hướng đông dọc theo phía bắc của Vùng đồi Sweetgrass. Sông chảy qua thị trấn Milk River và Vườn cấp tỉnh Writing-on-Stone, sau đó chuyển hướng đông nam đến đất Montana, qua đập Fresno, và chảy về phía đông qua Havre dọc theo phía bắc của Vùng đất giành riêng cho người Indien Fort Belknap. Gần Malta, sông chuyển hướng bắc, rồi lại đông nam, qua Glasgow và hợp dòng vào Missouri tại Quận Valley, Montana, 5 dặm (8,0 km) về phía hạ lưu tính từ đập Fort Peck.[4]
Milk là chi lưu chính cực bắc của Missouri, và do đó là tận cùng phía bắc của lưu vực sông Mississippi. Vùng lưu vực nhỏ bé của sông Milk tại miền nam Alberta và tây nam Saskatchewan và một trong hai vùng tại Canada thuộc lưu vực của con sông đổ vào vịnh Mexico (vùng con lại là lưu vự của lạch Big Muddy và sông Poplar vốn mở rộng đến Saskatchewan.)