Baez, a two-time All-Star and 2020 Gold Glove winner, gives the NL East leaders an immediate fill-in for injured buddy Francisco Lindor at shortstop. Lindor is sidelined with a strained oblique and isn’t expected back until at least mid-to-late August.
Baez, who can become a free agent after the season, is batting .248 with 22 home runs and 65 RBIs. He has a .775 OPS and 13 stolen bases in 16 tries, but also leads the National League with 131 strikeouts. He has made 18 errors in 88 games.
When Lindor returns, Baez could move to second base or third.
Williams also is a significant part of the deal for the Mets, who were eager to reinforce a thin starting rotation depleted by injuries. The right-hander is 4-2 with a 5.06 ERA in 13 games (12 starts) this season, his first with the Cubs after spending his first five years in Pittsburgh.
The 29-year-old Williams is eligible for arbitration after this season and can become a free agent following the 2022 season.
The Mets also received cash as part of the deal.
New York began the day with a 3 1/2-game lead in the NL East over Philadelphia, and third-place Atlanta was four back. Both those teams also made moves before Friday’s trade deadline in an effort to upgrade and chase down the Mets.
The 19-year-old Armstrong, a first-round draft pick out of high school last year, is sidelined with a shoulder injury. He is considered an elite defender in center field.