City were called to earlier defending when Peter Leeuwenburgh was asked to make the first save in the opening minutes of a shot by Brian Haoseb’s direct shot.
Lindokuhle Mbatha then managed to whim his way through the defence before placing a good shot at goal which went wide later on.
The Citizens did conjure up moments of their own, but solid defending from Marlon Heugh kept out shots from Ayanda Patosi and Teko Modise respectively.
After the water break called by referee Daniel Bennett, the tempo of the match slided a bit but picked up soon afterwards.
A shot from Patosi in the final phases of the half going wide was the best chance for the Citizens, who struggled to combat the tough one-on-one marking approach from Highlands.
At the start of the second half, City made a change. Patosi made way for livewire winger Craig Martin.
The Lions of the North took the lead just after 50 minutes when Peter Shalulile connected perfectly with a cross from Mbatha to guide to an empty net.
After struggling to get back into the equation, City changed their all-round approach and introduced a few substitutions.
Diminutive winger Gift Links was called upon by Benni McCarthy in place of Modise in the final stages as the second offensive change for the Capetonians.
A shot from captain Thamsanqa Mkhize sailed over the bar with 15 minutes to go as their threat to get an equaliser grew stronger and stronger.
As their plight to get back into things grew, a shot from outside the box from Roland Putsche once again flew over the top with the hosts sitting back and defending all too much.
With little touches in the game, Tendai Ndoro ended the game as a contest by finishing off a nice move from inside the box to help Highlands return to winning ways.