Obviously, making such a battle into anything approaching a fair fight would be a challenge for the Star Trek: Generations writers, but there are many creative ways to make the battle between the two Enterprises a more even match. For example, maybe Spock could figure out the Enterprise-D’s command codes and lower the shields, or they could find a handy nebula that (Wrath of Khan-style) could obscure the sensors and disable the shields of each ship.
If the plot involved Kirk’s Enterprise traveling to the future, it’s also conceivable that the wily captain (never too fussy about the Prime Directive) would have outfitted his ancient ship with modern weapons, shields, and other technology.