Santana walked five and struck out seven while throwing 134 pitches.
The Mets came into existence in 1962 and had been one of three current major league teams not to have recorded a no-hitter. It came in the franchise's 8,020th game.
The San Diego Padres and Tampa Bay Rays are the only teams left without such a performance.
The 33-year-old Santana (3-2) posted his second straight complete-game shutout. He blanked San Diego on four hits last Saturday and has 10 shutouts in his career. His no-hitter came in his 350th major league appearance and 274th start.
It was just his 11th start since returning from shoulder surgery that had threatened to end his career.
This was baseball's third no-hitter this year and the 275th in major league history. Philip Humber threw a perfect game for the Chicago White Sox April 21 and Jered Weaver tossed a no-hitter for the Los Angeles Angels May 2.
Two of the walks by Santana came consecutively with one out in the second, but he then struck out Matt Adams and Tyler Greene to end the inning.
The New York offense was highlighted by a three-run homer from Lucas Duda in the sixth that gave the Mets a 5-0 lead. Duda also drove in a run with a sacrifice fly in the fourth.
Santana retired Matt Holiday on a deep fly to center to open the ninth and Allen Craig then flew out to left.
With the New York fans roaring on every pitch, Santana worked the count full against David Freese and then got Freese to swing at a pitch that was almost in the dirt -- ending the game and creating baseball history for the Mets.
Santana's teammates mobbed him on the mound at the end of the game while, just a few feet away, security officers wrestled a fan to the ground after he had rushed onto the field to try to join in the celebration.
Beautician charged with giving client fatal silicone butt injection
Attkisson leaves CBS News, reportedly over network's 'liberal bias'