Glenn Dickson's boot punished Harbour's indiscipline as Pirates claimed a narrow win at Watson Park.
Dickson kicked five penalties, most from easy positions, as Harbour frequently infringed, and it also lost hooker Peter Mirrielees and George Folau to the sin-bin during the second half.
Harbour actually scored three tries to one, two to hard-running centre Folau, but Craig Sneddon missed all six shots at goal and it took too long to get into its work.
Dickson and Steve Bruce were an efficient inside-back combination for Pirates and Marshall Suckling was a continual danger with his elusive running at centre.
Warren Kearney was a hard-working No 8 and made the blindside break which led to openside flanker Clayton Jeftha's try.
Blindside flanker Josh Clark got through plenty of work and Nic Wilson was good value in all aspects at lock.
Harbour was without halfback Johnny Legg, who withdrew because of a hamstring injury, and both first-choice locks.
It trailed 5-17 early in the second spell but battled back well with tries to Folau and No 8 Ra Kahukiwa in the final quarter, but Pirates win was deserved, if not particularly convincing.
Folau was always a potential line-breaker for Harbour and flanker Eben Joubert, lock Sam Ready and Mirrielees were prominent in the forwards.
Pirates flanker Garth Swan was yellow carded just before the end.
Pirates 20 (Clayton Jeftha try; Glenn Dickson 5 pen), Harbour 15 (George Folau 2, Ra Kahukiwa tries).
Halftime: Pirates 12-5.
Referee: Ross Barnett.