In Montreal Fletcher became a fixture in the lineup, regularly playing in over 100 games a year, knocking in 50 to 60 runs and batting in the .260 to .270 range.

Fletcher signed as a free agent with the Toronto Blue Jays on November 26, 1997. With Toronto, he had some of his finest seasons. In 1999, he batted .291 with 18 home runs and 80 RBI (a career high) and in 2000 he had his first .300 season, batting .320 with 20 home runs (a career high) and 58 RBI. On August 27 of that year he hit three home runs in a game against the Texas Rangers. Fletcher's home runs made him one of seven Blue Jays to hit 20 or more that season, helping Toronto tie a record set by the 1996 Baltimore Orioles.

After these career highs, however, Fletcher struggled through the 2001 season and retired halfway through the 2002 season. He finished with a .269 batting average, 124 home runs, 583 RBI and 377 runs.