Alto 201 cm per 85 kg, in campo gioca come play/guardia. È cresciuto nelle giovanili della Virtus Bologna dove è stato compagno di squadra di Marco Belinelli. Il 14 novembre 2011 si è accordato - con un contratto biennale - proprio con la Virtus Bologna.
Durante la stagione 2003-2004 si divide tra la FuturVirtus, con cui colleziona un paio di presenze in Campionato di Legadue, e la Montepaschi Siena, partecipando formalmente al primo scudetto della società toscana con 6 brevi apparizioni in regular season e 3 nei play-off. Vince inoltre gli scudetti juniores e Under-20.
Nel 2004-2005 milita invece stabilmente nella Virtus 1934, società bolognese di Serie B d'Eccellenza che aveva cercato (senza successo) di raccogliere l'eredità sportiva della vecchia Virtus Bologna. Qui gioca 30 partite a 11 punti di media.
In vista dell'annata 2005-2006 viene ingaggiato dalla Sutor Montegranaro. Nelle Marche Vitali si ferma tre stagioni, conquistando una storica promozione in Serie A al suo primo anno in gialloblu (9,1 punti di media in 30 partite) e un'altrettanto storica partecipazione ai play-off nella stagione 2007-2008 (da lui chiusa con 39 presenze e 10,3 punti di media). Per Luca e la Sutor arrivano anche due partecipazioni alle Final Eight di Coppa Italia.
Nell'estate 2008 approda all'Olimpia Milano (anche se la Sutor Montegranaro aveva provato invano a trattenerlo) firmando un contratto di tre anni. Il playmaker bolognese ha scelto la maglia numero 10. Luca ha anche scritto una lettera pubblica sul Corriere Adriatico per ringraziare tutti quelli che lo hanno aiutato a crescere e a superare le difficoltà[2]
Nell'Armani ritrova Jobey Thomas. All'Olimpia Milano gioca 39 partite in campionato (7.4 punti a partita) e 13 in Eurolega (10.9 punti a partita).
Il 14 gennaio 2009 si impone alla ribalta dell'Eurolega, massima competizione europea per club, realizzando 32 punti nella partita decisiva ai fini della qualificazione alla fase successiva vinta dall'Olimpia Milano ad Atene contro il Panionios.
L'8 settembre 2009, al termine di un'estate travagliata, l'Olimpia Milano rescinde consensualmente il contratto[3][4], per firmare il giorno dopo un contratto quadriennale, con formula di due anni più due anni, con la Virtus Roma[5].
Nella stagione 2009-10 realizza 5.7 punti per incontro in 18 minuti di utilizzo. La Virtus Roma arriva 7º a fine stagione regolare e ai play-off viene eliminata con un secco 3-0 dalla Juvecaserta Basket.
Nel corso della stagione 2011-2012, iniziata senza un contratto, viene ingaggiato dalla Virtus Bologna, che prova ad impiegare il playmaker prevalentemente nel ruolo di guardia.
Il 15 settembre 2012 firma per la Vanoli Cremona[6]. Dopo un inizio difficile, Vitali diventa il leader della squadra e con una serie di grandi prestazioni guida la compagine lombarda alla salvezza, ottenuta con parecchie giornate d'anticipo.
L'ottima stagione attira su Vitali l'attenzione di importanti squadre italiane, così il 13 luglio 2013 viene ufficializzato il suo passaggio all'ambiziosa Reyer Venezia per la stagione 2013-14.[7].
Dopo una stagione caratterizzata da alti e bassi, Vitali torna alla Vanoli Cremona[8]. Il 18 maggio 2015 firma con il Gran Canaria fino al termine della stagione[9].
Dopo l'esperienza in Spagna, nell'estate 2015 fa nuovamente ritorno alla Vanoli Cremona firmando un biennale[10]. Il 10 giugno 2016 la società biancoblu comunica l'uscita dal contratto con il playmaker bolognese e con Marco Cusin[11].
Il 31 luglio 2016 si accorda per la stagione 2016-2017 con la Leonessa Brescia[12]. L'11 dicembre seguente, nella partita di campionato tra Leonessa Brescia e Vanoli Cremona (sua ex squadra), stabilisce il nuovo record di assist nel campionato italiano in una singola partita (18)[13]. Il 22 gennaio 2017, nella partita contro Pesaro, eguaglia il suo precedente primato[14]. Il 20 giugno 2018 rinnova con la squadra lombarda fino al 2022[15]. Nonostante ciò, la sua ultima partita disputata con i bresciani è quella del 14 aprile 2021, valida per la 27ª giornata. Per alcuni mesi rimane fuori rosa[16][17], quindi nel gennaio 2022 rescinde con il club.
Svincolato, prosegue la stagione prima a Napoli (Serie A) approdandovi nel gennaio 2022[18], poi a maggio scende in Serie A2 alla Pallacanestro Cantù per disputare i soli play-off[19]. Vitali non disputava la seconda serie nazionale dal 2005-2006, quando ancora vestiva la canotta di Montegranaro.
Nel gennaio 2023, a stagione in corso, va a rinforzare il roster della Blu Basket Treviglio, altra società lombarda di Serie A2 allenata in questo caso da Alessandro Finelli, già suo ex tecnico ai tempi di Montegranaro e della Virtus Bologna[20].
Ha fatto parte della Nazionale Under-18 (Europei a Saragozza, in Spagna nel 2004) e Under-20 (Europei a Mosca nel 2005 e a Izmir, in Turchia nel 2006).
Esordisce con la Nazionale maggiore il 23 dicembre 2006 nell'All Star Game a Torino, in un incontro amichevole tra la nazionale italiana e una selezione dei migliori stranieri della Lega A, incontro che vedrà una netta affermazione dell'Italia. Pur avendo preso parte alla fase preparatoria agli Europei 2007, essendo stato convocato per varie amichevoli a Cagliari e Bormio, non fa della squadra che poi li ha effettivamente disputati. Viene nuovamente chiamato da Recalcati nel 2008. Anche con Pianigiani viene convocato in Nazionale e nel 2010 disputa il Qualifying Round per la qualificazione all'Eurobasket di Lituania. Nell'estate 2011 svolge tutta la preparazione per l'Europeo. Luca sarà l'ultimo taglio del coach prima della partenza per la Lituania. Nel 2012 partecipa alle qualificazioni per l'Europeo 2013.
L'estate seguente è tra i 12 componenti della Nazionale italiana all'EuroBasket 2013, partecipando così per la prima volta alla fase finale di una competizione europea senior. La miglior partita del torneo per Vitali è l'ultima del girone eliminatorio contro la Svezia, nella quale mette a segno 7 punti. L'Italia chiuderà la manifestazione ottava. Anche nell'estate 2014 si conferma uno dei fedelissimi di coach Pianigiani e partecipa a tutte le partite di qualificazione per Euro2015. Il 25 luglio 2014, in occasione dell'amichevole contro il Montenegro nel torneo di Skopje, taglia il traguardo delle 100 presenze con la Nazionale maggiore[21]. Nel novembre 2019 annuncia il suo ritiro dalla nazionale.[22].
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 20 agosto 2009. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 6 settembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 24 luglio 2010. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 5 settembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 25 luglio 2010. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 5 settembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 2 agosto 2010. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 6 settembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 5 agosto 2010. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 5 settembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 8 agosto 2010. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 6 settembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 11 agosto 2010. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 5 settembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 17 agosto 2010. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 5 settembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 20 agosto 2010. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 5 settembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 23 agosto 2010. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 6 settembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 26 agosto 2010. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 5 settembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 8 agosto 2012. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 17 marzo 2016).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 7 agosto 2013. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 21 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 8 agosto 2013. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 21 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 9 agosto 2013. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 21 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 17 agosto 2013. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 21 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 18 agosto 2013. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 21 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 19 agosto 2013. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 21 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 22 agosto 2013. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 21 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 24 agosto 2013. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 21 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 9 settembre 2013. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 24 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 20 settembre 2013. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 24 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 21 settembre 2013. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 24 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 13 aprile 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 7 novembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 10 luglio 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 11 luglio 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 12 luglio 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 18 luglio 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 19 luglio 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 20 luglio 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 25 luglio 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 26 luglio 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 27 luglio 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 3 agosto 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 4 agosto 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 5 agosto 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 13 agosto 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 17 agosto 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 24 agosto 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 27 agosto 2014. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 30 luglio 2015. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 24 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 31 luglio 2015. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 1º agosto 2015. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 26 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 16 agosto 2015. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 21 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 16 agosto 2016. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 24 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 18 agosto 2016. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 24 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 30 luglio 2017. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 20 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 9 agosto 2017. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 20 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 13 agosto 2017. URL consultato il 25 novembre 2017 (archiviato dall'url originale il 20 agosto 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 24 novembre 2017. URL consultato il 24 novembre 2017 (archiviato dall'url originale il 1º dicembre 2017).
^ Ufficio Stampa FIP, Tabellino del match su FIP.it, in FIP.it, 26 novembre 2017. URL consultato il 26 novembre 2017 (archiviato dall'url originale il 1º dicembre 2017).