Sweden international Fridolina Rolfo stabbed in the decisive goal just before the hour in San Sebastian, one of two Basque venues for the straight knockout tournament being played behind doors.
The German champions are through to the final for the fifth time, having lifted the trophy in 2013 and 2014 while finishing runners-up in 2016 and 2018.
“It feels amazing, we’re really happy with the result and to have made it to the final. We were talking at half-time about the need to keep calm, keep the ball, not get too stressed and try to score a goal,” Rolfo told BT Sport.
“It says a lot about the club that everybody wants to win and has a strong winning mentality, even if we didn’t play our best today.”
Barcelona wasted a number of chances through Asisat Oshoala and Caroline Graham Hansen as they fell agonisingly short of returning to the final.
Six-time champions Lyon, the winners of the past four editions, face French rivals Paris Saint-Germain on Wednesday in the second semi-final in Bilbao. Lyon beat PSG on penalties in the French Cup final earlier this month.
The Women’s Champions League final will be held on Sunday in San Sebastian.
Download our app and read this and other great stories on the move. Available for Android and iOS.