Mark Ramprakash notched his 111th first-class hundred and Andrew Strauss was in the runs again as the match at the Brit Oval petered out into a draw.
Bottom-of-the-table Surrey set Middlesex 374 to win in 85 overs after Ramprakash had taken his overnight score of 86 to 103 not out at the start of the final day.
The chase was never on but a century opening stand between Strauss and Scott Newman blunted Surrey's efforts to secure themselves a first victory of the season.
Newman was caught off Gareth Batty for 43 in the 33rd over but Owais Shah prevented any further alarms before Strauss hit straight to short cover for the second time in the match, making 61 from 156 balls.
The England skipper was not always assured though, edging Jade Dernbach through a vacant third-slip area on 18 before collecting a four via the inside edge off Chris Tremlett.
After reaching tea at 142 for two, Middlesex lost only one further wicket with Dawid Malan caught at deep mid-wicket sweeping Usman Afzaal for 30.
Shah batted out time and was 40 not out when the players shook hands on the draw at 5pm.
Mark Ramprakash continued to pile on the runs against his former county as Middlesex toiled on day three against Surrey at the Brit Oval.
Ramprakash followed up his 223 in the first innings with 86 not out second time around, sharing in a 130-run stand with opener Arun Harinath (63).
By the close the hosts, who had opted not to enforce the follow-on earlier in the day, reach the close on 165 for two - giving them a massive lead of 331.
They had seized control of the Division Two contest by taking 10 Middlesex wickets for 161 runs - including Andrew Strauss for 92.
The England skipper looked set to make his first hundred of the campaign until a drive off Jade Dernbach's bowling went straight to short extra cover.
Opening partner Scott Newman had already departed by then for 91, as the visitors collapsed from 148 without loss overnight to 324 all out.
Seamer Dernbach was the pick of the Surrey attack with five for 68, including a spell of three wickets for 11 runs in 21 balls. Gareth Berg was left high and dry on 45 not out when Gareth Batty removed number 11 Steven Finn for 18.
Andrew Strauss used his return to the scene of his Ashes-winning triumph last summer to rediscover his batting form for Middlesex in their London derby against Surrey.
Strauss finished the second day on 54 not out, after earlier watching former England batsman Mark Ramprakash turn an overnight century into a superb 223 as Surrey totalled 490.
With Scott Newman also hitting an unbeaten 79 in his first match against his former county, Middlesex reached 148 for no wicket in reply by the close.
England captain Strauss certainly needed some runs in his last county appearance before the start next week of the two-Test series against Bangladesh.
In 11 previous Championship innings for Middlesex this season, Strauss had made only 262 runs at an average of 23.81, with just one half-century.
Ramprakash's innings showed Strauss just what was possible as the 40-year old moved on majestically from his overnight 125. It was Ramprakash's 11th double-ton for Surrey, putting him just one behind Sir Jack Hobbs' county record of 12.
In addition, Ramprakash moved into joint fifth position in the all-time list of first-class double-century makers.
Mark Ramprakash struck the 110th first-class century of his career as Surrey set the base for what should be a big score against Middlesex at the Oval.
The 40-year-old hit 125 not out as the hosts made 286 for four despite getting off to a bad start in the Division Two contest.
Surrey lost opener Laurie Evans for ten, but Ramprakash and Arun Harinath dug in, as they added 89 for the second wicket.
Shaun Udal got rid of Harinath, and then Rory Hamilton-Brown after his quick-fire 55, and he grabbed a third wicket with the final ball of the day by sending Usman Afzaal packing for 42.
Ramprakash stole the show though with his hundred more battling than flowing. He brought up three figures off 222 balls.