Ailesi aslen Kırşehir'in Kaman ilçesinde doğmuştur ve Almanya'ya işçi olarak göç etmiştir. Ufuk adında bir erkek kardeşi vardır.
2001 yılında Borussia Dortmund'un futbol altyapısına geçti. Bu takımda sivrilmeye başlayan Nuri, 2005-06 sezonunda Borussia Dortmund A takımı kadrosuna seçildi ve ilk maçını Intertoto Kupası'nda Sigma Olomouc takımına karşı sonradan 65. dakikda oyuna girerek takımının en genç Avrupa kupaları maçlarında forma giyen oyuncusu oldu.
6 Ağustos 2005 tarihinde 2-2 biten Wolfsburg maçında ilk 11 olarak oyuna başladı ve Bundesliga tarihinde ilk 11'de forma giyen en genç oyuncu ünvanını kazandı.
13 Ağustos'ta yapılan FC Schalke 04 maçında ise ilk kez taraftarının karşısına çıktı. Bu maçtan sonra bir süre kadroda kendine yer bulamayan Nuri, 10. haftadan sonra takıma geri döndü.
Sene sonu 7. olan Dortmund'da 1 gol 6 asistlik bir performans gösterdi. Sonraki sezonda ise yine ilk hafta maçı FC Bayern Münih maçında oynayan Şahin, sonraki bir kaç hafta Borussia Dortmund 2'de forma giydi. Daha sonra yine A takıma dönen Şahin, genel olarak ikinci yarıda oyuna giren yedek oyuncu olarak görev aldı.
Nuri Şahin, kulübü Borussia Dortmund tarafından, 5 Temmuz 2007 tarihinde Feyenoord'a kiralik verildi. İlk 11'e hemen giren Şahin, ligin ikinci maçında taraftarı karşısında oynadığı ilk resmi maçı olan NAC Breda karşısında 5-0'lık galibiyete iki golüyle katkıda bulundu. Ligi 6. olarak bitirseler de Şahin, 6 gol kaydederek kariyerini en iyi performansına ulaştı.
2008/09 sezonuna da Dortmund'un 2. takımında başlayan Nuri, ilk maçında iyi performansını golle süsleyince, tekrardan A takıma yükseldi. Takımı son hafta aldığı sonuçla 6. olup, Avrupa Kupaları'na katılma hakkını kaybetti. Nuri ise 2 gol ve 4 asist ile etkili bir performans gösterdi. İlk kez UEFA Kupası'nda forma giyen Şahin, Udinese Calcio'ya penaltı atışlarında takımının ilk golünü atsa da Dortmund, penaltılarla rakibine elendi.
2009-10 sezonu Dortmund'un değişmez oyuncularından olan Şahin, 34 maçın 33'ünde forma giydi. 4 gol, 8 asist kaydetti. Dortmund ile gördüğü en iyi derece olan beşinciliği gördü.
8 Ekim 2005'te Almanya ile özel milli maç yapan Türk Milli Takımı'na 85. dakikada oyuna girdi ve üç dakika sonra attığı gol ile Türk Millî Futbol Takımı'nda forma giyen hem en genç oyuncu hem de gol atan en genç futbolcu ünvanını aldı. 2010 Dünya Kupası elemelerinde 10 maçın 7'sine çağrılıp 4 maçta forma giydi.