The Edinburgh side were 14-7 up at half-time and built on that after the break, being more clinical than Hawks to come out on top 31-22.
Home head coach Phil Smith said: “Hawks have been a bogey team for us in recent years so for us to have taken ten points from ten against them this season is very pleasing. That for me is a big step forward.
“I thought in general in this one our game management and organisation was very good, but we do feel like we let them off the hook a bit in the last 20 minutes and they crept back into things.”
The visitors took the lead in the seventh minute when No.8 Jake Eaglesham went over from the base of the scrum. Stand-off Ross Thompson converted.
The home side were level in the 20th minute, after a sustained period of pressure on the Hawks line the ball was shipped wide and centre Robbie Mulvena fed winger Charlie Simpson for the try. Full-back Ross Jones converted.
Seven minutes later Heriot’s took the lead for the first time, second-row Adam Sinclair crashing over with Jones’ conversion making it 14-7.
That second score seemed to give Heriot’s confidence and they were unlucky not to score another try before the interval.
The likes of scrum-half Tom Wilson and winger Liam Steele went close, but Hawks kept them out and things were nicely poised at half-time with seven points between the sides.
The second period started with the sides swapping penalties, Thompson kicking one for Hawks and Jones doing the same for Heriot’s.
With 50 minutes gone, after a good break by No.8 Martin Hughes, Heriot’s bagged their third try through Mulvena.
Seven minutes later second-row Jack Turley went over and with Jones converting both they were now comfortable at 31-10 up.
However, this Hawks team never gives up and they gave themselves a lifeline in the 61st minute when replacement stand-off Jack Steele ran in from 45 metres for a try converted by full-back Scott Peffers.
With five minutes of the game to go a good finish by hooker Grant Stewart out wide on the left for Hawks put them within nine points, but Steele’s conversion drifted wide to deny them a losing bonus point.