Harrison's first-half try and Grayson's impressive efforts from the tee - the fly-half finished the day with 12 points to his name - earned a narrow Saturday afternoon success.
But Sale pushed Saints all the way, retaining hope until the final seconds of the game as they stayed in the game despite being 14-0 and 17-7 down.
Saints defended for their lives after the clock had struck 80 and they were eventually able to celebrate a crucial win against a fellow play-off contender.
Saints had been under huge pressure early on as they shipped a stream of penalties, leading to a yellow card for Ollie Sleightholme, who paid the price for his team's persistent offending.
Sale immediately kicked to the corner to try to put the squeeze on but they were held up by Saints from their first push towards the line.
Saints then won a crucial scrum penalty to give themselves a little breathing space after a really tough opening 12 minutes.
The hosts were putting a huge amount of effort into their defending, eventually working their way up the field as Sale started to offend.
Tom Wood did brilliantly to gather and give lineout ball and Tommy Freeman hared towards the line before being stopped by a high tackle.
However, Saints weren't to be denied as Harrison picked up and scored on his first appearance since Boxing Day.
Sale were suddenly the ones on the back foot and they could have been punished further had Saints not squandered two lineout chances in opposition territory.
But the black, green and gold still had a real foothold in the game and Fraser Dingwall appeared to be everywhere, intercepting a pass in his own 22 before winning a penalty in Sale territory with a huge hit.
Grayson did the business from the tee to extend Saints' lead to eight points, and that was how it stayed at the interval.
Grayson quickly added to the Saints tally with an impressive long-distance penalty at the start of the second half.
Saints then lost Lewis Ludlam to injury, bringing JJ Tonks into the action, and Sale won a penalty from the next scrum, but AJ MacGinty fluffed his lines from the tee.
Saints got their revenge at the following scrum, winning a penalty on the halfway line, which Grayson again landed superbly.
But Sale were straight back at the Saints door, kicking a penalty to the corner, allowing Jean-Luc du Preez to find his way over.
MacGinty made no mistake this time and his team were just a converted try away from being level with more than 20 minutes of the match to go.
But Akker van der Merwe cost Sale soon after as his tip tackle allowed Grayson to notch another three points for Saints.
Sale were refusing to go away though, and their lineout was starting to become a real weapon.
The Sharks showed their bite again in that area as Lood de Jager rumbled over.
MacGinty's conversion cut the gap to just three points with 15 minutes remaining, and Saints were starting to shake.
It looked like they would get over the line as they held the ball deep in Sale's 22 with just a minute to go, only to give away a penalty that gave the Sharks one final chance.
However, after a lengthy spell of resilient Saints defending, Wood intercepted to allow his team, to boot the ball out and put the seal on a vital victory.
Saints: Furbank; Freeman, Dingwall, Francis, Sleightholme; Grayson, James (Taylor 78); Waller (cc) (Auterac 51), Marshall (Haywood 51), Painter (Hill 51); Moon (Ratuniyarawa 63), Coles; Wood, Ludlam (cc) (Tonks 50), Harrison.
Sale Sharks: Hammersley; McGuigan, S James (R du Preez 50), Hill, Reed (Roebuck 61); MacGinty, De Klerk (Quirke 61); Harrison (Rodd 47), van der Merwe (Langdon 61), John (Oosthuizen 47); Wiese (Beaumont 54), De Jager, JL du Preez, Ross (c), D du Preez.
Referee: Matthew Carley