In July 2016 he was named in Sri Lanka's Test squad for their series against Australia, but he did not play. In September 2017, he was named in Sri Lanka's Test squad for their series against Pakistan in the United Arab Emirates, but again, he did not play. In November 2017, he was named in Sri Lanka's Test squad for their series against India. He made his Test debut for Sri Lanka against India on 2 December 2017. He was dismissed for duck in the first innings, by the first delivery Silva faced from Ravichandran Ashwin. However in the second innings, Silva scored his maiden test fifty and guided Sri Lanka to edge closer to the win. However at the end, match was drawn and Silva finished the match with unbeaten 74 runs. During the first Test against Bangladesh, Silva scored his maiden Test century. His century along with centuries from Dhananjaya de Silva and Kusal Mendis gave Sri Lanka a first innings total of 713. However, the match ended in a draw after Mominul Haque's made centuries in both innings. Silva took his batting form to the second Test of the tour as well. In the match, he scored match winning fifties in each innings, with Sri Lanka setting a target over 300 for Bangladesh to win the match. The match ended with a 215-run win to Sri Lanka due to impressive bowling performance by all bowlers. During the Test series, Roshen Silva went onto become the fifth batsman to register four fifty-plus scores in his first five Test innings of his Test career and became the only Sri Lankan to achieve the feat. He also finished with an aggregate of 309 runs in his first five Test innings which is also the second highest aggregate by a Sri Lankan in his first five Test innings just behind Asela Gunaratne's aggregate of 310. Sri Lanka won the two-match series 1–0 and Silva was adjudged man of the match and player of the series for his batting performance. For his performance, Silva was rewarded with a jump of 29 places in the ICC Test Batting Rankings, which has put him inside the top-50 batsmen in 49th spot for first time in his career. In May 2018, he was one of 33 cricketers to be awarded a national contract by Sri Lanka Cricket ahead of the 2018–19 season.