Nadal's 21st straight win at the tournament improved his record to 20-1 in clay court finals, including 4-0 at Barcelona. The second-ranked Spaniard, who has won 103 of his last 104 matches on clay, improved to 25-8 in finals overall.
Nadal moved to 6-3 against the fifth-ranked Ferrer, whom he beat on his way to a fourth straight trophy at Monte Carlo last week. The three-time French Open champion will go for a fourth straight Masters Series title in Rome, starting Monday.
Nadal took the lead from the first game with a break of Ferrer's serve thanks to a backhand passing shot.
Ferrer fired a crosscourt forehand out to give Nadal a second break point and a 3-0 advantage. Ferrer finally held in the fifth to trail 4-1.
Ferrer steadied himself in the second set to put Nadal on the defensive. A screeching forehand set up a double break-point chance in the sixth but Nadal saved to trail 4-3.
After trading breaks, Ferrer went back to the steady forehand for the winner that snapped Nadal's 25 set-winning streak here.
Nadal regained control in the decider with a break in the second game for a 2-0 lead, and another break in the fourth at the seventh all-Spanish final at Barcelona.
Nadal through to Barcelona Open quarters
Collins: Federer down but not out
Medina Garrigues vs. Dulko in SAR final
Gonzalez beats El Aynaoui at BMW Open