The visitors lost out to an 82nd-minute strike, the fifth match in succession where they have dropped points due to conceding in the final 10 minutes.
Town stopper James Belshaw had to pull off a flying save to keep out Tom Bolarinwa’s early long-range effort, however he was powerless to prevent Sutton breaking the deadlock in the 19th minute when Jonah Ayunga glanced home Harry Beautyman’s cross.
There were no more goals before the interval, but Weaver’s men levelled matters on the hour-mark.
Right winger George Thomson shifted the ball onto his left foot and curled a stunning effort into the top corner from the edge of the United box. Town looked the more likely in the period of play that followed, however, with 82 minutes on the clock, an unmarked Beautyman turned the ball home just six yards out when substitute Brandon Thomas-Asante flicked a Dale Bennett centre into his path.
The visitors almost snatched a late leveller when Ross Worner punched the ball clear and, with the keeper out of position, Thomson unleashed a goal-bound 35-yard effort, only for Craig Eastmond to clear off the line.
The ball then fell to Mark Beck, but he was thwarted by a good Worner stop and the points went to Sutton, a result that lifts them above Town (seventh) and into sixth in the table.
Sutton United: Worner, Bennett, Pearce, Beckwith, Bolarinwa (Thomas-Asante 76), Eastmond, Bailey, Beautyman, Williams, Ayunga (McQueen 76), Toure (Davis 65). Unused substitutes: Lema, Mason.
Harrogate Town: Belshaw, Howe, Langmead, Fallowfield, Kerry (Williams 86), Burrell, Falkingham, Thomson, Emmett (Woods 77), Beck, Leesley (Muldoon 81). Unused substitutes: Cracknell, Kitching.
Referee: S Purkiss (London).