Panathinaikos Ninis began his career in 2004 as a youngster in Panathinaikos' football academies, joining from the academy of
Apollon Smyrnis. On 22 December 2006, the club directors offered him a five-year contract and just two weeks after that day, on 7 January 2007, Panathinaikos coach
Víctor Muñoz selected him in the main squad for the match against
Egaleo at the
Olympic Stadium. His outstanding performance earned him the title of the Super League Matchday
MVP. He became the second youngest player ever to wear the club's shirt in a league match, at the age of sixteen (the first was Kostas Antoniou − 15-years old – in 1978). In February 2007, he officially rejected a call to play for the
Albanian Under-21 national team. On 15 February 2007, Ninis became the youngest player to participate with a Greek football team in a European cup match, against
Lens in France. On 18 February, Ninis lead Panathinaikos in a 4–1 win over rivals
AEK Athens in the Olympic Stadium. Ninis scored one goal and assisted two others. On 6 July, Ninis signed a professional contract with Panathinaikos. The
2007–08 season was marred by injuries and non-selection. After coming on as a substitute against
Olympiacos in the first game of the season, Ninis was hit by several injuries, a hamstring injury followed by stomach muscle injuries ruled him out of action for three months. It is thought that these injuries arose due to burnout from playing too many games at a young age. He eventually returned in December, but was not part of the Panathinaikos first team for the remainder of the 2007–2008 season. This decision by Panathinaikos coach
Jose Peseiro was heavily criticised by all Panathinaikos fans. Despite this, in December 2007, Ninis won the
HFF Young Player of the Year, as voted by fellow players and managers. Ninis is the youngest player to have won this award. The
2008–09 season began well for Ninis. New manager
Henk ten Cate featured Ninis regularly in Panathinaikos' pre-season training. He repaid this faith through his performances against teams such as
Charleroi Having entered the pitch at half-time, Ninis assisted three goals and scored one, aiding Panathiniakos to a 5–1 victory against the Belgian club. On 11 August 2008, it was revealed that ten Cate had selected Ninis to be one of the new captains of Panathinaikos, along with fellow players
Dimitris Salpingidis and
Gilberto Silva. Ninis is the youngest ever player to be chosen as captain of Panathinaikos, at the age of 18 years and 125 days. On 23 September 2008, Ninis extended his contract with Panathiniakos for an additional four years to 2012, with a €10 million buy-out clause into the agreement for any foreign team wanting to buy him, rising to €17 million for a Greek side. In February 2010, Ninis made his best appearances with Panathinaikos and generally in his personal career so far in the knockout stage of the
UEFA Europa League against
AS Roma. That days, Roma was in great form and was second in
Serie A. Having played well in the first match, in OAKA, he helped his team win 3–2. However, in
Stadio Olimpico in Roma, he did better, than any other time before. He won a penalty, which
Djibril Cissé converted to equalizer for Panathinaikos, then the Greek young attacking midfielder scored from 28 meters and in the stoppage time of the first half he made a great pass to Djibril Cissé, who did not have a problem to score. In September 2011, Ninis suffered an injury and did not make his return until March. His contract was terminated by mutual consent in August 2014.
Return to Panathinaikos On 6 November 2014, Ninis signed a new contract with Panathinaikos for two-and-a-half years.
Charleroi On 18 January 2016, Charleroi announced the acquisition of Sotiris Ninis for the next two years, with the attacking midfielder leaving Panathinaikos for the second time in his career.
Maccabi Petah Tikva and Hapoel Ashkelon On 10 September 2017, Ninis signed for one year at
Maccabi Petah Tikva F.C. of the
Israeli Premier League as a free agent, after being released from
KV Mechelen a week earlier. In October 2018, Ninis joined
Liga Leumit side
Hapoel Ashkelon. On 8 October 2018, he scored on his debut after coming on as a substitute in a 2–1 win over
Hapoel Kfar Saba.
PAS Giannina On 18 November 2022, Ninis signed two-year contract with
PAS Giannina. ==International career==