Simone Sorensen fick den avgörande spot-kick efter Österrike missade sina första tre straff.
Österrikarna kommer att förlora den bästa chansen för matchen när Sarah Puntigam sköt över en första halv straff.
Danmark gick också nära i normal tid genom Sanne Troelsgaard, vars strejk kom från korsningen.
Danskarna kommer att möta värdarna i finalen efter deras 3-0 seger över England i den andra semifinalen.
Det var en tight och spänd semifinal mellan Danmark, de två gånger semifinalisterna, och turneringsdebutanter Österrike.
Danmark, slaget i sista-fyra etappen för fyra år sedan, var näst bäst till den obildade österrikiska sidan under de första 45 minuterna.
Dominik Thalhammers sida borde ha tagit ledningen när de fick ett straff i 13: e minuten. Maja Kildemoes var den olycklige dansken när hon dömdes att avsiktligt ha flyttat armen för att blockera Verena Aschauers ansträngningar.
Freiburg midfielder Puntigam steg upp, men höjde sitt straff över baren.
Danmarks bästa försök med öppningshalvan föll till Rosengards Troelsgaard, vars vinklade vänsterfotsstrejk träffade ribban.
Det var inte förrän extra tid som båda målen allvarligt hotades igen. För det första, Katrine Vejes ansträngningar rensade Österrike bar med en strejk från åtta meter. Och sedan Pernille Harder, utan tvekan spelaren av matchen, på väg över i de sista sekunderna innan spot-kicks.
Mediauppspelning stöds inte på den här enheten
Matchen slutar, Danmark Kvinnor 03, Österrike Kvinnor 0.
Straffet Shootout slutar, Danmark Kvinnor 03, Österrike Kvinnor 0.
Mål!  Danmark Kvinnor 03, Österrike Kvinnor 0. Simone Sørensen (Danmark Women) konverterar straffet med ett högerfotat skott till det övre högra hörnet.
Straffet är räddat! Verena Aschauer (Österrikes kvinnor) misslyckas med att utnyttja denna stora möjlighet, vänster fotade skott räddade i det övre vänstra hörnet.
Straffet är räddat! Sofie Pedersen (Danmark Kvinnor) misslyckas med att utnyttja denna stora möjlighet, vänster fotade skott räddade i nedre vänstra hörnet.
Straffet är räddat! Viktoria Pinther (Österrikes kvinnor) misslyckas med att utnyttja denna stora möjlighet, höger fotade skott räddade i nedre vänstra hörnet.
Mål!  Danmark Kvinnor 0 (2) Österrike Kvinnor 0. Pernille Harder (Danmark Kvinnor) konverterar straffet med en höger fotad skott till nedre vänstra hörnet.
Straffet missades! Dåligt straff av Laura Feiersinger (Österrike Kvinnor) höger fotade skott är bara lite för hög. Laura Feiersinger borde bli besviken.
Mål!  Danmark Kvinnor 0(1) Österrike Kvinnor 0. Nadia Nadim (Danmark Kvinnor) konverterar straffet med en höger fotad skott till övre vänstra hörnet.
Straffet Shootout börjar Danmark Kvinnor 0, Österrike Kvinnor 0.
Andra halvtiden tar slut, Danmark Kvinnor 0, Österrike Kvinnor 0.
Substitution, Danmark Kvinnor. Nicoline Sørensen ersätter Katrine Veje.
Försök missade. Pernille Harder (Danmark Women) huvudet från mycket nära håll är nära, men missar till höger. Hjälpt av Katrine Veje med ett kors.
Hörnet, Danmark Kvinnor. Förföljd av Virginia Kirchberger.
Försök missade. Katharina Schiechtl (Österrikes kvinnor) huvud från mycket nära håll missar till vänster. Hjälpt av Carina Wenninger efter en viss situation.
Foul av Sanne Troelsgaard (Danmarks kvinnor).
Viktoria Pinther (Österrikes kvinnor) vinner en frispark i anfallshalvan.
Försöket räddades. Pernille Harder (Danmark Women) höger fotade skott från utsidan av lådan sparas i nedre högra hörnet. Hjälpt av Frederikke Thøgersen.
Sanne Troelsgaard (Danmark Kvinnor) vinner en frispark i defensiva halvan.
Foul av Viktoria Pinther (Österrikes kvinnor).
Försök missade. Katrine Veje (Danmark Kvinnor) höger fotade skott från mitten av lådan är för hög. Hjälpt av Pernille Harder med en genomboll.
Sanne Troelsgaard (Danmark Kvinnor) vinner en frispark i defensiva halvan.
Foul av Nina Burger (Österrikes kvinnor).
Foul av Pernille Harder (Danmarks kvinnor).
Verena Aschauer (Österrikes kvinnor) vinner en frispark i defensiva halvan.
Försök missade. Nadine Prohaska (Österrike Kvinnor) höger fotade skott från mitten av lådan är för hög efter en set bit situation.
Foul av Nadia Nadim (Danmarks kvinnor).
Nadine Prohaska (Österrikes kvinnor) vinner en frispark i anfallshalvan.
Försöket räddades. Katrine Veje (Danmark Kvinnor) vänster fotade skott från utsidan boxen sparas i toppen av målet.
Försening över. De är redo att fortsätta.
Försening i förhållande till Katharina Schiechtl (Österrikes kvinnor) på grund av en skada.
Försök missade. Sanne Troelsgaard (Danmark Kvinnor) höger fotade skott från mitten av lådan är för hög. Hjälpt av Pernille Harder med ett nyckelkort.
Försök blockerat. Sanne Troelsgaard (Danmark Kvinnor) höger fotade skott utanför lådan är blockerad. Hjälpt av Nadia Nadim.
Frederikke Thøgersen (Danmark Kvinnor) vinner en frispark i defensiva halvan.
Foul av Nadine Prohaska (Österrikes kvinnor).
Andra halv extra tid börjar Danmark Kvinnor 0, Österrike Kvinnor 0.
Första halvtiden tar slut, Danmark Kvinnor 0, Österrike Kvinnor 0.
Försök missade. Viktoria Schnaderbeck (Österrike Kvinnor) höger fotade skott utanför lådan är för hög. Hjälpt av Nina Burger.
Nadia Nadim (Danmark Kvinnor) vinner en frispark i anfallshalvan.
Foul av Virginia Kirchberger (Österrikes kvinnor).
Danmark kommer att möta Nederländerna i finalen av Women's Euro 2017 efter att ha besegrat Österrike i ett straff straff straff.