Una memoria NAND flash è in grado di parallelizzare l'operazione di lettura su un'intera pagina del blocco di memoria selezionato. Per semplicità, ci si limiterà nel seguito a descrivere l'operazione di lettura di una singola stringa di memoria.
Per poter leggere il bit memorizzato in una data cella è necessario testarne la tensione di soglia. Per far ciò, tutta la stringa, ad eccezione della cella selezionata, viene polarizzata ad una tensione di pass <math>V_{pass}</math> più alta rispetto alla più alta <math>V_T</math> programmata. In questo modo la stringa si comporta come una cascata di transistori operati in regime di ''pass-transistor'' ad esclusione della cella in lettura. La cella in lettura viene polarizzata con una tensione alla sua ''gate'' maggiore rispetto alla <math>V_T</math> cancellata ma minore di quella programmata. A questo punto, tenendo il contatto di ''source'' a massa ed i selettori di ''source'' e ''drain'' accesi, viene valutata la capacità della stringa di condurre corrente idealmente attraverso un'opportuna tensione positiva imposta alla ''bitline''. Se la corrente letta risulta sufficientemente alta, ovvero se la tensione di gate alla cella selezionata è sufficientemente alta da accenderla, il bit verrà letto come 1 (stato cancellato), altrimenti come 0. In realtà, per ragioni di semplicità e di costo d'integrazione, la stringa non viene letta direttamente forzando una tensione alla ''bitline'' e leggendo la risultante corrente, ma viene sfruttata la capacità parassita della metallizzazione di ''bitline'' per integrare la corrente e leggerla successivamente attraverso un latch.<ref name=":4" /> [[File:NAND bias op.png|sinistra|miniatura|268x268px|Schema di tensioni utilizzato per polarizzare una stringa di memoria NAND flash durante le operazioni di a) lettura, b) programmazione e c) cancellazione.]]