Veteran Croatia captain Modric stroked in his spot-kick after just five minutes at the Stade de France, and the home side could not find an equaliser despite Kylian Mbappe returning to join Karim Benzema in the starting line-up.
France won the previous edition of the Nations League last year but they have managed just two points from their four outings this month, with home defeats against Denmark and now Croatia sandwiching draws away to the Croats and in Austria.
As a result, Les Bleus are bottom of League A, Group 1, seven points behind leaders Denmark who beat Austria 2-0 in Copenhagen on Monday with first-half goals by Jonas Wind and Andreas Skov Olsen.
Didier Deschamps’ team may now need to win their last two group games in September to avoid being relegated to the less glamorous League B.
Those matches are also the only games they have left before they begin their defence of the World Cup in Qatar in November.
This clash was the latest meeting between the sides who contested the 2018 World Cup final in Moscow, although Mbappe, Modric and Marcelo Brozovic were the only players who started that day to line up at kick-off here.
The home fans in the crowd of more than 77,000 were left stunned as the Israeli referee awarded the visitors an early penalty when Liverpool defender Ibrahima Konate was adjudged to have fouled Josip Brekalo.
The evergreen Modric, back at the ground where he won the Champions League with Real Madrid at the end of last month, made no mistake with the resulting penalty even though France goalkeeper Mike Maignan got a touch.
From then on it took the occasional burst of pace by Mbappe to bring the crowd to life, although the closest France came to scoring in the first half was when Christopher Nkunku blasted just wide from range.
Mbappe had come off injured against Denmark and so missed the draw in Croatia before emerging from the bench to score a late equaliser in Austria last weekend.
The Paris Saint-Germain forward did his best to conjure a leveller here as he came close twice early in the second half, and the hosts also had an appeal for a penalty dismissed when Lucas Digne went down in the area.
Meanwhile Maignan was forced to parry away a fine strike by substitute Lovro Majer at the other end, but Croatia — with Modric as majestic as ever — saw the game out as goalkeeper Ivica Ivusic stopped Josip Sutalo scoring an own-goal.
The final whistle was greeted by jeers and Deschamps will hope that France’s summer slump is simply down to fatigue among his players at the end of a long campaign, rather than a sign of what might be to come later in the year.