Reyes, who was recently let go by the Colorado Rockies, became a free agent at 1 p.m. ET. He started the season on the suspended list related to a domestic violence incident.
Reyes will report to Single-A Brooklyn and is expected to play Sunday.
The Rockies are still on the hook for more than $39 million remaining on Reyes' contract minus the prorated league minimum of $507,500 for which the Mets are responsible.
The Rockies placed Reyes on waivers after he returned from a 59-game suspension under Major League Baseball's Joint Domestic Violence, Sexual Assault and Child Abuse Policy. Reyes was charged with physically assaulting his wife in a Hawaii hotel room last October.
Reyes, 33, played with the Mets the first nine years of his career before signing a free agent deal with the Miami Marlins after the 2011 season. He had a batting line of .274/.310/.378 for the Toronto Blue Jays and Rockies last year.
Reyes, a four-time All-Star, is a career .290 hitter with 479 stolen bases over 13 seasons.