In her first meeting with Cibulkova since the Australian Open final in January, Li once again proved too strong for her younger opponent, winning 6-3 4-6 6-3 in a little over two and a half hours.
Pennetta booked her place in the last four by beating American Sloane Stephens 6-4 5-7 6-4 in a seesawing match played in gusting winds.
In a tournament that has been packed with surprises and high-profile casualties, the 32-year-old Li has been a model of consistency, ferociously battling through each round.
The Chinese top seed, in the absence of world number one Serena Williams, has struggled with her serve all week and committed eight double faults against Cibulkova, four in the opening set and four more in the third when the pressure was on.
The Slovak also made eight doubles while the pair combined for more than 100 unforced errors in a match that was longer and much tighter than their last meeting in Melbourne.
Li got the decisive break late in the third set and then served out for victory to stay on course for her first title at one of the biggest events outside the Grand Slams.
"Here is different than Australia. Of course score should be different," said Li.
"I think today she played more aggressive. I was feeling if I try to go back like a little bit she was trying to step in to hit the ball.
"Also I was feeling in the second set I think I dropped down a little bit and gave her more chance. She can get a lot of winners."
Pennetta looked to be heading for the exit when she blew her first chance to win the match then fell behind in the deciding third set.
The 32-year-old was two points from victory when serving for the match in the second set when the wind suddenly started to blow a gale and her game started to unravel.
Stephens, 20, broke her serve and won six games in a row to jump out to a 3-0 lead in the third when Pennetta staged her own comeback, winning six of the last seven games to wrap up an extraordinary victory.
"We didn't play our best tennis," Pennetta said. "Maybe in the beginning we played much better, and in the second one, but the third was a disaster for both of us.
"I'm happy to get through this match, but I don't have good feelings right now - it's just crazy outside, the wind is just coming out of nowhere."
BNP Paribas Open results
20-Flavia Pennetta (Italy) beat 17-Sloane Stephens (U.S.) 6-4 5-7 6-4
1-Li Na (China) beat 12-Dominika Cibulkova (Slovakia) 6-3 4-6 6-3
- Sports & Recreation
- Sloane Stephens
- Serena Williams