Route 125 begins at
I-93, at exit 35 (formerly 41), just south of where I-93 drops from four lanes to three. It passes through an area of industrial parks before clipping the northwest corner of
North Reading and entering
Andover. Once in Andover, the road serves as a bypass road around much of Andover's busier sections. It intersects
Route 28 with a cloverleaf interchange as it bends northward through town. The route then enters
North Andover, becoming concurrent with
Route 114 for half a mile as the two routes pass
Merrimack College. Route 125 then splits northward, becoming concurrent with
Route 133 again acting as a bypass, this time between North Andover's more densely populated west end and its historical center. The two routes split at a point between
Lawrence Municipal Airport and
Lake Cochichewick in the northern end of town. From there, Route 125 passes into
Haverhill in the
Bradford section of town. In Bradford, Route 125 meets a connector road between it and
I-495 which passes through an industrial area. The route then continues through the Bradford area before crossing the
Merrimack River at the Basiliere Bridge. Once it crosses the bridge into the downtown Haverhill area, Route 125 crosses
Route 113 before sharing a one-block concurrency with
Route 97 and a two-block concurrency with
Route 110 in quick succession. The route then turns more northwesterly, crossing I-495 directly at Exits 109A-B (formerly 51A-B). The route turns northward at Plaistow Road before entering into
Plaistow, New Hampshire and becoming
New Hampshire Route 125. Main Street, meanwhile, heads into Plaistow as well, where it meets the end of
New Hampshire Route 121. ==Major intersections==