Youth Shahrul started his career at
Perak youth team. He was then transferred to Malaysia national youth setup and has played for
Harimau Muda B in the 2011 Malaysia league and
Harimau Muda A in the 2012 Singapore
S.League. In 2014, he played 22 matches for Harimau Muda in the Australian
National Premier Leagues.
Felda United In 2015, Shahrul graduated from the national youth setup and was signed by
Felda United. At Felda, he was converted from a
defender to a
defensive midfielder by head coach
Irfan Bakti Abu Salim. He made his debut in the second match of 2015 Malaysia Super League against Sime Darby coming on from a bench in the 81st minute. He made his first start against Johor Darul Ta'zim on 3 May 2015 and become a regular until the end of the season. His only league goal for Felda was in the final league match against Johor Darul Ta'zim, where Felda won 2–1.
Perak In 2016, Shahrul returned to his hometown club
Perak where he won the
2018 Malaysia Cup with the club and finished as
Malaysia Super League runners up in 2018, hence qualified to the
AFC Champions League play-off round.
Johor Darul Ta'zim On 8 May 2021, Shahrul joined
Johor Darul Ta'zim. He was given the number 32 shirt. He made his debut against Sabah in the
2021 Malaysia Cup. He also scored his first goal for Johor Darul Ta'zim in the same competition against
Kelantan. In 2024, Shahrul changed his jersey number from no.32 to no.3 after
Adam Nor Azlin left the club. He debuted in the no.3 jersey during a friendly match against Singapore side,
Lion City Sailors on 4 April 2023 at
Bishan Stadium. During the
2024 Malaysia FA Cup first leg match on 29 June 2024 against
Malaysian University, Shahrul scored Johor Darul Ta'zim 1000th goal since being rebranded in 2013 scoring the fourth goal in 5–0 win. ==International career==