The visitors went ahead with the first of two tries for scrum half Jack Hamilton before Graham Poke slotted a penalty.
Orkney took the lead for the only time in the match as Adam Baird, returning after a 17-month lay-off from First XV action, went over after a concerted period of pressure on the Haddington line.
Jack Hamilton then won a foot race into the Orkney goal area to reach a searching kick first, scoring his second try, converted by Gareth Pritchard to give Haddington an 8-12 lead.
Haddington sealed their first half dominance with a fine individual try from right winger Kyle Adams, who evaded William Thomson's attentions and had a straight run to the line.
Craig Slater showed promise up the left but should maybe have backed himself instead of looking for support, as he looked unstoppable at pace. The chance went though as the ball was spilled.
It was Alan Brown who took the initiative at a messy scrum, pouncing on a loose ball and driving to the line for a much-needed try, closing the gap to 13-17.
Haddington's reply was immediate though, as they stretched Orkney across the field before Kyle Hamilton went over on the right. Pritchard's conversion made it 13-24 after 50 minutes.
Orkney played well in spells as they battled for a way back into the match, but it was another scrappy bit of play inside the Haddington 22 that saw William Thomson pounce and take full advantage of the confusion to go in under the posts. With Graham Poke off with a head knock Al Watson was just wide with the conversion so it was 18-24 moving into the final quarter.
Five minutes later and Orkney were back within three points as Adam Watt slotted a difficult penalty to give Orkney hope.
Haddington weren't finished though and as Orkney kicked into their 22 their full back called the mark and his kick was taken on by Kyle Adams on the wing. He chipped through and his pace took him to the line again to make it 21-29.
Time was against Orkney now, into the last five minutes, but a Craig Slater break through the middle set things up for Darren McLean to power over the line.
Orkney needed to keep possession and create one last opportunity as the clock ticked down, but a penalty to Haddington gave them control and it was the visiting support who cheered as they saw out the clock to the final whistle.
It was a match of extremes for a couple of Orkney players. Al Watson started at scrum half to claim a record-breaking 200th league cap, while Andrew Linklater made a return to rugby to make his first start for the senior side.