Highway 305 begins at Highway 16 about 5 km southeast of Langham. It takes an eastward route until Dalmeny, where it runs south until it intersects (and begins to run concurrently with Highway 784). Highway 305 then goes east again, passing Highway 684 and Highway 12, until the town of Warman. It then goes northward (as 3rd Avenue North), no longer concurrent with Highway 784, until it ends at Neuhorst Road (Township Road 400) near Neuhorst.
Originally, Highway 305 ended at Highway 11 just east of Warman, but the routing was changed in the 2010s.
The new alignment of Highway 305 goes due east from the intersection with Centennial Drive north of Martensville for approximately 1.5 km. It then curves North-Northwest for approximately 2 km, after which point it resumes an east-west alignment. It then continues east toward Highway 11, ending just north of the old alignment of the intersection of Highway 11 and Range Road 3045.