The home side put in a hugely committed performance, belying their 4th position in East Division 1 with an impressive early try to open the scoring.
Their pack rumbled towards the Reds' line, and after several phases of pick-and-go's, the ball was worked to full-back Connor Johnson, who sneaked over.
Stand-off Grant Craig missed the conversion, and an early penalty, but the hosts held a 5-0 lead inside the opening quarter hour.
That spurred the visitors into life, and after a break from Isaiah Mamea, they looked certain to score, but a superb covering tackle from Graeme Fairgreive saved a certain try.
However, the visitors worked their way back into the match with impressive play from Graham Paris, an early replacement for the injured Alan Laidlaw, and Mike Legget earning a penalty.
Nick Bell duly slotted the three-pointer to reduce the deficit to 5-3.
The Reds stand-off was in action from the tee again moments later, as the home side again infringed at the breakdown, allowing Bell to kick his side in front for the first time in the match.
Half-time: North Berwick 5-6 Haddington
The visitors started the second period slowly, and struggled to get a foothold as the North Berwick pack took charge.
That dominance was rewarded just 10 minutes after the resumption, as a break by centre Gus Elder allowed Shaun Mackle in to score. Craig added the conversion to make it NB 12-6 Haddington.
The Reds pushed, and emptied their bench in the second half - notably first 1st XV appearances of the season for Callum Elliot and Colin Wood, while Kenny Harper made his 1st XV debut at tighthead prop.
Calum Cockburn, playing against his former club, tried to get the Reds back into the match with strong running in midfield, and another replacement, Graeme Dykes, added sizeable weight to the Haddington three-quarter line.
However, a route back into the match was not forthcoming as the hosts' defence held firm - aided hugely by the introduction of former Haddington lock Quinton Caulfield on the hour mark.
They sealed victory when full-back Johnson raced clear and released replacement Jamie Armstrong, who evaded the covering tacklers to score and seal victory for the hosts.
A day to forget for the club as they fell to their first defeat against NB in almost half a century, but credit must go to the home side, who took their chances and thoroughly deserved their 19-6 win.