Der forekommer to underarter af skarv i Danmark. Mellemskarv (Phalacrocorax carbo sinensis) yngler her i landet samt blandt andet i landene omkring Østersøen og syd for Danmark. Storskarv (P. c. carbo) yngler blandt andet langs Norges kyster, og fugle herfra opholder sig i Danmark mellem august og april.
Hovedparten af de danske skarver spreder sig i sensommeren over forholdsvis korte afstande til søer og kystområder og optræder da over hele landet. Her opholder de sig nogle uger eller måneder, før de påbegynder det egentlige efterårstræk. Borttrækket begynder for alvor i august, kulminerer i september og fortsætter gennem oktober. Borttræk forekommer dog også i november og i kuldeperioder i december-januar. En vis andel af de danske skarver forbliver i Danmark vinteren over.
Skarver fra udlandet kommer til de danske farvande mellem juli og november, og nogle af disse fugle overvintrer. I foråret forlader mange af de overvintrende og gennemtrækkende udenlandske skarver Danmark mellem 20. marts og 20. april.
I de senere år har skarv i stigende grad taget de danske søer og åer i brug, også gennem efteråret og om vinteren.
Bestanden af skarv gik hastigt frem gennem 1980’erne både herhjemme og i udlandet. De europæiske bestande er senest opgjort til 300.000 par P. c. sinensis og 43.000 par P. c. carbo (Bregnballe m.fl. 2014). I Danmark aftog væksten i ynglebestanden hurtigt efter 1991, og i årene 1993-2006 ynglede 36.500-42.500 par. Herefter gik bestanden tilbage, og i 2013 var yngleantallet nået ned på 24.700 par (Fig. 3.3.3.1A). I 2014 gik bestanden atter frem, og i 2014-2020 ynglede der 30.500-32.000 par i Danmark (Sterup & Bregnballe 2020). De årlige opgørelser over ynglebestandens størrelse baseres på optællinger af reder i samtlige kolonier i Danmark.