Born in Speyer, Stindl began his career in the youth teams for TSV Wiesental and joined a similar setup at Karlsruher SC in summer 2000. He started his professional career with Karlsruher SC, making his first appearance on 15 March 2008 in the Bundesliga. He was substituted on in the 81st minute in a 0–1 defeat to Eintracht Frankfurt. On 29 November 2008, Stindl scored his first Bundesliga goal against Hannover 96. In February 2010, he announced his intention to leave Karlsruhe. On 16 March 2010, his transfer to Hannover 96 was confirmed.
On 8 August 2015, he marked his competitive debut by scoring a brace in a 4–1 win at FC St. Pauli in the first round of the 2015–16 DFB-Pokal.
Stindl was confirmed as Gladbach's new captain on 1 August 2016 after the retirement of previous captain Martin Stranzl and the transfer of vice-captain Granit Xhaka to Arsenal.
In the opening game of the 2017 FIFA Confederations Cup against Australia, Stindl scored his first goal for Germany in the fifth minute of the match. He followed this up with his second international goal in Germany's 1–1 draw with Chile three days later. He repeated the feat against the same opposition in the Final of the tournament, scoring the only goal of the match to help Germany claim the title, finishing as joint top goalscorer with three goals.