From its source, the Mary River flows north through the towns of Kenilworth, Gympie, Tiaro and Maryborough before emptying into the Great Sandy Strait, a passage of water between the mainland and Fraser Island, near the town of River Heads, 17 kilometers south of the town of Hervey Bay.