Arrows set up with four changes for the clash as Siyabonga Dube, Siphamandla Sabelo, Wayde Jooste and Musa Billankulu were drafted in, while Highlands handed starts to debutant Enocent Mkhabela and Siphesihle Zwane.
Following a scrappy opening to the game, the home side took the lead on 24 minutes when Danny Venter’s left-footed strike deflected past a helpless Tapuwa Kapini.
Soon after, Sbaelo looked to extend his side's lead after creating space in the box, but his strike flashed just wide of Kapini's goal.
The Lions of the North, who struggled in the opening half, threw on a double change at the start of the second as Peter Shalulile and Mokete Mogaila were brought on to change their fortunes.
The substitutions led Owen Da Gama’s side to exert more pressure from the word go, as Mothobi Mvala came close to the equaliser with a close-range header that sailed wide of the mark.
Lerato Lamola was introduced on 70 minutes for Arrows and his impact was immediate, with the substitute firing past Kapini in the box to hand his side a two-goal cushion.
With 15 minutes to play, Ryan Rae popped up at the back post to steer home a free-kick from the right side of the area to reduce the deficit for the visitors.
In the end, Arrows were able to hold on for victory which sees them move to within a point of eighth-placed Bloemfontein Celtic, while Highlands drop to 10th spot.
Arrows: Gumede, Sibisi, Mathiane, Lunga, Dube, Bilankulu, Venter, Sabelo, Parusnath,. Jooste, Mutizwa,
Subs: Naicker, Zwane, Dube, Molefe, Lamola, Moreira, Conco.
Highlands: Kapini, Mkhabela, Ramoraka, Mokoena, Msimango, Rae, Mbatha, Mahlangu, Zwane, Sekola, Mvala.
Subs: Heugh, Haoseb, Sibande, Mofokeng, Shalulile, Mogaila, Ndoro.