PA 305 begins at an intersection with US 22 in Porter Township, Huntingdon County, heading north on two-lane undivided Bridge Street. The road heads through areas of homes with some farm fields, crossing the Frankstown Branch Juniata River into the borough of Alexandria. Here, the route turns east-southeast onto Main Street, passing through more residential areas. PA 305 heads back into Porter Township and turns northeast onto Juniata Valley Pike, entering agricultural areas with occasional homes. The route crosses the Little Juniata River into Logan Township and comes to a bridge over Norfolk Southern's Pittsburgh Line, turning east onto West Diamond Street. The road runs through more agricultural areas before it enters the borough of Petersburg and becomes Diamond Street, passing homes. PA 305 turns north onto King Street and runs past more residences, turning northeast onto Shavers Creek Road and entering Logan Township again. At this point, the route heads through farmland with some homes and patches of woods, heading through the community of Ribot. The road continues into West Township and passes through more rural areas, running through Cottage and Neffs Mills.