Det högerextrema AfD-partiets företrädare stödde lagförslaget från kristet konservativa CDU/CSU, men det räckte inte.
Bara 338 röstade för, medan 350 röstade emot. Fem avstod från att rösta.
Om förslaget hade antagits skulle det ha varit första gången i tysk historia som AfD hade fått majoritet för en lagändring, men så blev det inte.
Fredagens beslut skulle ha gett AfD majoritet för en lagändring.
Fredagens beslut skulle, till skillnad från ett liknande förslag som antogs i onsdags, ha varit bindande.
”Brandvägg” mot extremhögern
Båda förslagen lades fram av det kristet konservativa CDU/CSU, medan det socialdemokratiska regeringspartiet SPD var starkt emot.
Rolf Mützenich, en av SDP:s mest framträdande parlamentsledamöter, använde starka ord när han förmanade Merz att inte alliera sig med AfD igen efter att han ”hamnat i onåd” på onsdagen.
– Vi kan fortfarande stänga helvetets portar tillsammans. Du måste sätta upp brandväggen igen! sade Mützenich.
Både SPD och dess regeringspartner, De gröna, har varnat för att den så kallade ”brandväggen” mot extremhögern håller på att kollapsa. Hittills har inget annat tyskt parti varit villigt att samarbeta med AfD.
FDP ändrade sig
På fredagsmorgonen gjorde de marknadsliberala Fridemokraterna (FDP) – det parti som nyligen lämnade trepartiregeringen och drev på för nyval – klart att de trots allt inte skulle stödja förslaget.
Istället ville de att förslaget skulle skickas tillbaka till utskotten i nationalförsamlingen så att det kan bearbetas ytterligare och sedan läggas fram för omröstning vid ett annat tillfälle.
Fredag eftermiddag ändrade de sig efter att samtalen med de tidigare koalitionspartnerna SDP och De Gröna misslyckats, enligt FDP:s gruppledare Christian Dürr. Som ett resultat av detta planerade partiet att stödja förslaget, sade Dürr.
På onsdagen fick konservativa CDU/CSU stöd från AfD för en icke-bindande skärpning av den tyska asyl- och flyktingpolitiken. Förslaget antogs med en knapp majoritet, 348 röster för och 345 röster emot. Tio representanter avstod från att rösta.
Avhoppare blockerade förslaget
Förslaget innehöll i stort sett samma sak som det som presenterades i fredags. Det innehåller också ett stopp för familjeåterförening för flyktingar med begränsad skyddsstatus och ger polisen utökade befogenheter att avvisa personer utan inresedokument vid gränsen innan de får ansöka om asyl.
CDU/CSU behövde rösterna från det högerextrema partiet Alternative für Deutschland (AfD) för att förslaget skulle få majoritet, i likhet med onsdagens omröstning. AfD gjorde det klart i förväg att de skulle rösta för förslaget.
Men när omröstningen hölls var det avhoppare från FDP och Sahra Wagenknecht-alliansen (BSW) som hindrade Merz förslag från att gå igenom.
Kritik från Merkel
Merz’ föregångare Angela Merkel kritiserade på torsdagen sin efterträdare för att luta sig mot AfD:s stöd och påpekade att han tidigare har uttalat sig mot sådana improviserade allianser.
– Det är fel att inte längre känna sig bunden av sina egna ord och därmed för första gången ha tillåtit en majoritet med AfD: s röster i en omröstning i Bundestag, sade hon i ett uttalande på sin personliga webbplats.
– Europa tittar på
Utrikesminister Annalena Baerbock sa inför omröstningen att landets rykte i Europa står på spel och kritiserade CDU-ledaren Friedrich Merz för att ha lierat sig med AfD.
– Vilken signal har vårt land skickat till Europa och framför allt till Moskva? frågade hon retoriskt.
– Du har ingen aning om hur många meddelanden jag har fått under de senaste 48 timmarna eftersom Europa tittar på Tyskland, fortsatte Baerbock, som tillhör det regerande gröna partiet.
Barboeck uppmanade också Merz att lägga ner sin röst.
– Det handlar om att göra det klart att vi står för en demokrati utan högerextremister, sade utrikesministern.