Santos, a midfielder playing left back because of injuries, ignited a moribund attack that had scored five goals -- three free kicks by Lucas Zelarayan and two D.C. United own goals.
Diaz scored the Crew's first goal from the run of play on a breakout from a Toronto corner kick.
Santos, who was making his 100th Crew appearance, cleared the service out of the box to Diaz for the latter's first goal since Sept. 14, 2019.
Zardes made it 2-0 with his 50th career goal in all competitions since joining the Crew from the Los Angeles Galaxy before the 2018 season.
Akinola cut the deficit to 2-1 in the 52nd minute, picking up a loose ball after Room saved a shot by Richie Laryea for his first goal of the season.
Toronto and U.S. men's national team forward Jozy Altidore was not on the game roster. Media reports said he was training on his own after being upset for being pulled in the 70th minute against Orlando City SC in the last match.
Alejandro Pozuelo, the 2020 MLS MVP, made his season debut for Toronto in the 55th minute. He had been out with a thigh injury.
The teams enter a break for their players to compete internationally and they don't play again until June 19 when Toronto is the designated home team for its match vs. Orlando City in Orlando, Fla.
Columbus will play Chicago in the final match at Historic Crew Stadium before debuting new Crew Stadium on July 3 against New England.