Announced by the team Thursday morning, the deal is worth an average annual value of $798,000.
McLeod, 23, is entering his second full season with the hockey club. He appeared in 71 games last year, recording nine goals and 12 assists for 21 points.
The Mississauga, Ont., native started last season in Bakersfield. He made his Oilers debut in November, scoring his first NHL goal on Nov. 14 in St. Louis.
McLeod appeared in all 16 playoff games earlier this year, recording three goals and an assist, as well as eight penalty minutes. He scored his first post-season goal in Game 2 of the Oilers’ first-round series against the Los Angeles Kings.