Salah played his youth football with El Mokawloon. He played his debut in their senior team in the Egyptian Premier League being substituted in on 3 May 2010 in the 1–1 away draw against El Mansoura. During the 2010–11 season Salah advanced and became a regular in the team. However, following the Port Said Stadium disaster, early February 2012, the Egyptian Premier League stopped and all subsequent matches were postponed. On 10 March 2012, the Egyptian Football Association announced their decision to cancel the remainder of the season. Swiss Super League club Basel had been monitoring Salah for some time, and after the Port Said Stadium disaster the club organised a friendly match with the Egypt U-23 team. This match took place on 16 March in the Stadion Rankhof, in Basel, and despite Salah only playing during the second half, he scored twice. The game ended in a 4–3 win for the Egypt U-23 team. Basel subsequently invited Salah to remain in the city for a week's training. On 10 April 2012, it was announced that Salah had signed for Basel on a four-year contract starting from 15 June 2012. Salah scored on his unofficial debut on 23 June 2012 against Steaua Bucureşti during a friendly match, a 4–2 defeat. He made his official Basel debut in a UEFA Champions League preliminary stage match against the Norwegian club Molde on 8 August, coming on as a substitute in the 74th minute. He made his league debut on 12 August against Thun, playing the full match. He scored his first league goal a week later, the second goal in the 2–0 home win against Lausanne. Salah scored his first Europa League goal in the quarter-finals on 11 April 2013, as Basel advanced to the semi-finals by beating Tottenham Hotspur 4–1 on penalties after a 4–4 aggregate draw. In the semi-final on 2 May, Salah scored against Chelsea at Stamford Bridge, although they were beaten 2–5 on aggregate. Despite late disappointment in Europe, Basel comfortably won the Swiss Super League season 2012–13 Championship title and finished runners-up in the Swiss Cup. To the start of the 2013–14 Swiss Super League season Salah was member of the Basel team that won the 2013 Uhrencup. Salah scored on his first league appearance against Aarau on 13 July 2013. He scored his first Champions League goal a month later against Maccabi Tel Aviv on 6 August 2013 in the third qualifying round. Before the first leg on 30 July 2013, Salah did not take part in the UEFA-mandated pre-match handshakes with Maccabi players. Basel called the incident a "coincidence" and said it was not intended as a snub. Salah was on pressure from several Egyptian voices demanding from him not to travel to Israel and then criticizing his visit. On the return leg in Tel Aviv, he took part in the handshake line, but offered fist bumps rather than an open hand to Maccabi players. He scored twice against the Bulgarian league champions PFC Ludogorets Razgrad on 21 August 2013 in the play-off round. On 18 September 2013, Salah scored the equalizer against Chelsea in the 2–1 away win during the group stage, During the return tie on 26 November at the St. Jakob-Park, Salah scored the winning goal as Basel beat Chelsea for the second time with a 1–0 home win. On 23 January 2014, Chelsea announced that a deal had been agreed with Basel to bring Salah to London for a fee reported to be in the region of £11 million. On 26 January 2014, Chelsea announced they had completed the signing of Salah, making him the first Egyptian to sign for the Stamford Bridge club. On 8 February 2014, Salah made his debut for Chelsea in the Premier League, coming on as a substitute, in the 3–0 win over Newcastle United. On 22 March 2014, Salah scored his first goal for Chelsea against Arsenal at Stamford Bridge in the London Derby, coming on as a substitute for Oscar, in a match which ended a 6–0 win for the Blues. On 5 April 2014, Salah opened the scoring and later won a penalty and an assist in Chelsea's 3-0 win over Stoke City. Before the season, his future with Chelsea looked to be in a balance after reports suggested he could be forced to return to Egypt to carry out military service after his registration for an education scheme rescinded by the Egyptian Minister of Higher Education. Later, it was reported that he has been spared of military service after the meeting with the Egyptian Prime Minister Ibrahim Mahlab, the Minister of Higher Education and the Egyptian national manager Shawky Gharib. Salah changed squad numbers from 15 to 17 for the start of the 2014–15 season, with his new number having been vacated by Eden Hazard changing to number 10. Salah's season debut came against Swansea City on 13 September 2014, playing the last eight minutes of Chelsea's 4−2 home win in place of Cesc Fàbregas. He made his first start of the season at home to Bolton Wanderers in the third round of the League Cup on 24 September, featuring in a 2–1 win. Although Salah only made three league appearances before his loan move to Fiorentina, José Mourinho stated that he would receive a winner's medal for his contributions this season. On transfer deadline, 2 February 2015, Chelsea confirmed that Salah would play for the Italian club Fiorentina on 18-month loan until the end of the 2015–16 season, as part of a transfer deal which saw Juan Cuadrado moving in the opposite direction. Salah chose the number 74 shirt in honor of the victims of the Port Said Stadium riot. Six days after signing, he made his Fiorentina debut coming off the bench in the 65th minute as a replacement for Joaquín in a 3−2 Serie A victory against Atalanta at the Stadio Artemio Franchi. Salah made his first start for Fiorentina on 14 February against Sassuolo, scoring his first goal for the club in the 30th minute. He then provided an assist to Khouma Babacar just two minutes after scoring; the match ended in a 3−1 win for Fiorentina. Twelve days after that, Salah scored his first European goal for Fiorentina, as his side advanced to the Round of 16 of the Europa League, beating Tottenham 3−1 on aggregate. Salah scored the winning goal for Fiorentina against Internazionale on 1 March, his third goal in Serie A. Four days after that, Salah scored both of Fiorentina's goals in their 2–1 win away to Juventus in the Coppa Italia semi-final first leg. At the end of the season, Fiorentina reportedly activated an option to make the loan move permanent, but Salah refused the move. Even though the loan agreement was for 18 months, Salah refused to return to Fiorentina and instead joined Serie A rivals A.S. Roma