El Campeonato Nacional B 1987-88 fue la segunda edición de la Primera B Nacional, que llevaba por ese entonces el nombre de Nacional B. Fue disputado entre el 19 de agosto de 1987 y el 4 de junio de 1988 por 22 equipos.

Se incorporaron Deportivo Italiano y Temperley, descendidos de la Primera División; Quilmes, campeón de la Primera B 1986-87, así como Atlético Tucumán y Almirante Brown, ganadores de los zonales Noroeste y Sureste, respectivamente, disputados por equipos de la Primera B y del Torneo del Interior.

El campeón del torneo fue Mandiyú de Corrientes, que ascendió directamente a la Primera División. El segundo ascenso se definió a través de un Torneo Reducido jugado entre los mejores 9 equipos del campeonato (ranqueados después del campeón), más los tres equipos ascendidos de la tercera división en la temporada 1987-88. En consecuencia, el ascenso fue ganado por el Club Atlético San Martín de Tucumán, que clasificó al reducido por ser el ganador del Zonal Noroeste, convirtiéndose de esta manera en el primer y único equipo que accedió a la Primera División sin disputar la segunda categoría.

Asimismo, el torneo determinó el descenso de Ferro Carril Oeste de General Pico, Gimnasia y Esgrima de Jujuy y Guaraní Antonio Franco, todos ellos a su respectiva liga regional, por medio de la tabla de promedios.

Ascensos y descensos

PromedioDescendidos del Nacional B 1986-8720.ºCentral Norte21.ºAtlético Concepción22.ºUnión (Villa Krause)

PosiciónAscendidos al Nacional B 1987-881.ºQuilmesZonal NoroesteAtlético TucumánZonal SuresteAlmirante Brown

PosiciónAscendidos a la Primera División 1987-881.ºDeportivo ArmenioGan. red.Banfield

PromedioDescendidos de la Primera División 1986-8719.ºTemperley20.ºDeportivo Italiano

Equipos EquipoCiudadEstadio Almirante Brown Isidro Casanova Fragata Presidente Sarmiento Atlético Tucumán Tucumán Monumental José Fierro Belgrano Córdoba Julio César Villagra Central Córdoba Santiago del Estero Alfredo Terrera Chacarita Juniors Villa Maipú Chacarita Juniors Chaco For Ever Resistencia Juan Alberto García Cipolletti Cipolletti La Visera de Cemento Colón Santa Fe Brigadier Estanislao López Defensa y Justicia Florencio Varela Norberto Tomaghello Deportivo Italiano Ciudad Evita No poseeHizo de local, principalmente, en el estadio de Atlanta. Deportivo Maipú Maipú Omar Higinio Sperdutti Deportivo Mandiyú Corrientes No poseeHizo de local en el estadio de Huracán Corrientes Douglas Haig Pergamino Miguel Morales Ferro Carril Oeste General Pico Coloso de Barrio Talleres Gimnasia y Esgrima (J) San Salvador de Jujuy 23 de Agosto Guaraní Antonio Franco Posadas Clemente Argentino Fernández de Oliveira Huracán Buenos Aires Tomás Adolfo Ducó Lanús Lanús Ciudad de Lanús - Néstor Díaz Pérez Los Andes Lomas de Zamora Eduardo Gallardón Quilmes Quilmes Centenario Temperley Temperley Alfredo Beranger Tigre Victoria José Dellagiovanna

Distribución geográfica de los equipos Región Cant. Equipos conurbano bonaerense9Almirante Brown, Chacarita Juniors, Defensa y Justicia, Deportivo Italiano, Lanús,Los Andes, Quilmes, Temperley y Tigre Ciudad de Buenos Aires1Huracán Interior de la provincia de Buenos Aires1Douglas Haig Provincia de Chaco1Chaco For Ever Provincia de Córdoba1Belgrano Provincia de Corrientes1Deportivo Mandiyú Provincia de Jujuy1Gimnasia y Esgrima Provincia de La Pampa1Ferro Carril Oeste Provincia de Mendoza1Deportivo Maipú Provincia de Misiones1Guaraní Antonio Franco Provincia de Río Negro1Cipolletti Provincia de Santa Fe1Colón Provincia de Santiago del Estero1Central Córdoba Provincia de Tucumán1Atlético Tucumán

Formato Competición Se disputó un torneo de 42 fechas por el sistema de todos contra todos a dos ruedas.

Ascensos El equipo que obtuvo más puntos fue el campeón, que ascendió a la Primera División. Los equipos ubicados entre el segundo y el décimo lugar, el campeón de la Primera B y los ganadores de los zonales, donde participaron equipos de esa división y del interior, disputaron un torneo reducido, de manera eliminatoria a dos ruedas, ida y vuelta. El formato fue distinto del año anterior: los equipos que finalizaron entre el cuarto y el décimo lugar y los ganadores de los zonales disputaron la primera ronda. En la segunda ronda se sumó el tercer ubicado en el campeonato y en las semifinales, el subcampeón. El ganador ascendió a Primera División junto con el campeón.

Descensos Se deciden mediante una tabla de promedios determinados por el cociente entre los puntos obtenidos y los partidos jugados en las cuatro últimas temporadas. Si un club asciende y luego de una temporada desciende, se le contabilizan los puntos obtenidos en su campaña previa. Los tres últimos de dicha tabla descienden a la Primera B o a su respectiva liga regional, según corresponda. Otro equipo indirectamente afiliado, que no sea alguno de los últimos tres de la tabla de promedios, deberá disputar una Promoción contra un equipo del Torneo del Interior.

Tabla de posiciones {| class="wikitable sortable" style="text-align:center; margin-right: auto; margin-left: auto;" <center> |- style="background:#dddddd;" ! Pos ! Equipo ! Pts ! PJ ! G ! E ! P ! GL ! EL ! PL ! GV ! EV ! PV ! GF ! GC ! DIF |- style="background: #90EE90; text-align:center" ||1.º||align="left"|Mandiyú ||58||42||20||18||4||12||7||2||8||11||2||54||24||30 |- style="background: #CFC; text-align:center" ||2.º||align="left"|Quilmes ||54||42||20||14||8||12||7||2||8||7||6||50||34||16 |- style="background: #C2EEFF; text-align:center" ||3.º||align="left"|Cipolletti ||52||42||19||14||9||12||6||3||7||8||6||51||31||20 |- style="background: #C0DEFF; text-align:center" ||4.º||align="left"|Chaco For Ever ||51||42||18||15||9||10||6||5||8||9||4||59||44||13 |- style="background: #C0DEFF; text-align:center" ||5.º||align="left"|Tigre ||49||42||19||11||12||11||6||4||8||5||8||55||44||11 |- style="background: #C0DEFF; text-align:center" ||6.º||align="left"|Belgrano ||49||42||18||13||11||14||5||2||4||8||9||50||44||6 |- style="background: #C0DEFF; text-align:center" ||7.º||align="left"|Huracán ||48||42||19||10||13||11||5||5||8||5||8||54||38||16 |- style="background: #C0DEFF; text-align:center" ||8.º||align="left"|Colón ||48||42||18||12||12||12||6||3||6||6||9||50||45||5 |- style="background: #C0DEFF; text-align:center" ||9.º||align="left"|Atlético Tucumán ||45||42||14||17||11||10||9||2||4||8||9||57||51||6 |- style="background: #C0DEFF; text-align:center" ||10.º||align="left"|Douglas Haig ||43||42||12||19||11||7||8||6||5||11||5||45||41||4 |- style="text-align:center" ||11.º||align="left"|Chacarita Juniors ||43||42||13||17||12||7||9||5||6||8||7||42||43||-1 |- style="text-align:center" ||12.º||align="left"|Central Córdoba (Sgo. del Estero) ||42||42||13||16||13||7||11||3||6||5||10||57||58||1 |- style="text-align:center" ||13.º||align="left"|Deportivo Italiano ||41||42||13||15||14||9||6||6||4||9||8||51||54||-3 |- style="text-align:center" ||14.º||align="left"|Almirante Brown ||40||42||14||12||16||11||7||3||3||5||13||51||54||-3 |- style="text-align:center" ||15.º||align="left"|Deportivo Maipú ||40||42||11||18||13||7||10||4||4||8||9||47||52||-5 |- style="text-align:center" ||16.º||align="left"|Defensa y Justicia ||38||42||11||16||15||8||7||6||3||9||9||43||35||8 |- style="text-align:center" ||17.º||align="left"|Guaraní Antonio Franco ||38||42||13||12||17||9||7||5||4||5||12||45||47||-2 |- style="text-align:center" ||18.º||align="left"|Temperley ||38||42||11||16||15||8||8||5||3||18||10||47||51||-4 |- style="text-align:center" ||19.º||align="left"|Lanús ||35||42||11||13||18||8||6||7||3||7||11||64||69||-5 |- style="text-align:center" ||20.º||align="left"|Los Andes ||33||42||12||9||21||7||6||8||5||3||13||45||63||-18 |- style="text-align:center" ||21.º||align="left"|Ferro Carril Oeste (Gral. Pico) ||25||42||6||13||23||6||8||7||0||5||16||31||67||-36 |- style="text-align:center" ||22.º||align="left"|Gimnasia y Esgrima (Jujuy) ||14||42||4||6||32||4||3||14||0||3||18||23||82||-59

Tabla de promedios {| class="wikitable sortable" style="text-align:center; margin-right: auto; margin-left: auto;" |- style="background:#dddddd;" ! Pos ! Equipo ! T. 85 ! T. 86 ! 86-87 ! 87-88 ! Total ! PJ ! Promedio |- ||1.º||align="left"|Mandiyú ||-||-||48||58||106||84||1,261|- ||2.º||align="left"|Belgrano ||-||-||54||49||103||84||1,226|- ||3.º||align="left"|Huracán ||-||-||54||48||102||84||1,214|- ||4.º||align="left"|Chaco For Ever ||-||-||48||51||99||84||1,178|- ||5.º||align="left"|Colón1 ||43||21||54||48||166||144||1,152|- ||6.º||align="left"|Quilmes2 ||47||11||48||54||160||144||1,111|- ||7.º||align="left"|Atlético Tucumán ||-||-||-||45||45||42||1,071|- ||8.º||align="left"|Deportivo Maipú ||-||-||49||40||89||84||1,059|- ||9.º||align="left"|Lanús1 ||47||21||47||35||150||144||1,041|- ||10.º||align="left"|Cipolletti ||-||-||35||52||87||84||1,035|- ||11.º||align="left"|Tigre1 ||36||23||38||49||146||144||1,013|- ||12.º||align="left"|Defensa y Justicia1 ||-||21||43||38||102||102||1,000|- ||13.º||align="left"|Douglas Haig ||-||-||41||43||84||84||1,000|- ||14.º||align="left"|Los Andes1 ||47||23||40||33||143||144||0,993|- ||15.º||align="left"|Deportivo Italiano ||-||-||-||41||41||42||0,976|- ||16.º||align="left"|Central Córdoba (Sgo. del Estero) ||-||-||37||42||79||84||0,940|- ||17.º||align="left"|Almirante Brown2 ||31||17||45||40||133||144||0,923|- ||18.º||align="left"|Chacarita Juniors ||-||-||34||43||77||84||0,916|- ||19.º||align="left"|Temperley ||-||-||-||38||38||42||0,904|- style="background: #FFCCCC;" ||20.º||align="left"|Guaraní Antonio Franco ||-||-||35||38||73||84||0,869|- style="background: #FFCCCC;" ||21.º||align="left"|Ferro Carril Oeste (Gral. Pico) ||-||-||36||25||61||84||0,726|- style="background: #FFCCCC;" ||22.º||align="left"|Gimnasia y Esgrima (Jujuy) ||-||-||34||14||48||84||0,571'''

1: Mantuvieron los puntajes obtenidos en las pasadas ediciones de la Primera B, a pesar de que la categoría era nueva.

2: A pesar de haber ascendido para disputar este campeonato, los puntajes que obtuvieron en la temporada 1986-87 de la Primera B se utilizaron para calcular los promedios, además de los conseguidos en los dos torneos anteriores.

Resultados Fecha 1LocalResultadoVisitanteDeportivo Maipú0 - 2Douglas Haig |-align=center |Quilmes |bgcolor=#D0E7FF|1 - 1CipollettiDeportivo Mandiyú0 - 1Tigre |-align=center |Lanús |bgcolor=#D0E7FF|2 - 2Atlético TucumánGuaraní Antonio Franco |1 - 0 |Gimnasia (Jujuy) |-align=center |Deportivo Italiano |1 - 3 |bgcolor=#D0E7FF|Los AndesBelgrano |1 - 0 |Colón |-align=center |Temperley |bgcolor=#D0E7FF|0 - 0Almirante BrownCentral Córdoba (SdE)1 - 2Huracán |-align=center |Chacarita Juniors |bgcolor=#D0E7FF|0 - 0Chaco For Ever'''Ferro (General Pico)1 - 0Defensa y Justicia Fecha 2LocalResultadoVisitanteFerro (General Pico)0 - 0 |Quilmes |-align=center |Defensa y Justicia |0 - 1 |bgcolor=#D0E7FF|Chacarita JuniorsChaco For Ever3 - 3 |Central Córdoba (SdE) |-align=center |Huracán |1 - 2 |bgcolor=#D0E7FF|Deportivo MaipúDouglas Haig |2 - 1 |Temperley |-align=center |Almirante Brown |bgcolor=#D0E7FF|0 - 0BelgranoColón0 - 1Deportivo Italiano |-align=center |Los Andes |0 - 1 |bgcolor=#D0E7FF|Guaraní Antonio FrancoGimnasia (Jujuy)0 - 0 |Lanús |-align=center |Atlético Tucumán |bgcolor=#D0E7FF|1 - 1Deportivo Mandiyú'''Tigre2 - 1Cipolletti

Fecha 3LocalResultadoVisitanteCipolletti1 - 3Atlético Tucumán |-align=center |Guaraní Antonio Franco |bgcolor=#D0E7FF|1 - 1ColónBelgrano |1 - 0 |Douglas Haig |-align=center |Deportivo Maipú |bgcolor=#D0E7FF|0 - 0Chaco For EverQuilmes |3 - 1 |Tigre |-align=center |bgcolor=#D0E7FF|Deportivo Mandiyú2 - 0Gimnasia (Jujuy)Lanús |4 - 1 |Los Andes |-align=center |bgcolor=#D0E7FF|Deportivo Italiano3 - 1Almirante BrownTemperley0 - 1Huracán |-align=center |bgcolor=#D0E7FF|Central Córdoba (SdE)2 - 1Defensa y JusticiaChacarita Juniors'''0 - 0Ferro (General Pico) Fecha 4LocalResultadoVisitanteChacarita Juniors0 - 1Quilmes |-align=center |Ferro (General Pico) |0 - 1