Diouf started his career at Diaraf before moving to Molde in 2007. In his first season with them he won the Norwegian First Division, and gained promotion to the Norwegian top division. His performances and goalscoring attracted interest from a number of big clubs, and he eventually moved to Manchester United in 2009, remaining on loan at Molde until January 2010. He scored on his home debut for United and won the League Cup as an unused substitute in the 2010 final. Diouf joined Hannover in January 2012, where he scored 35 goals in 71 appearances, before moving to Stoke City on a free transfer in 2014. Diouf spent six seasons with Stoke scoring 25 goals in 157 appearances before leaving in the summer of 2020.