The move that avoids forecasting
Pricing an option before expiry looks like it needs a forecast of the underlying. It does not, and the reason reuses the trick from put-call parity: find something with an identical payoff.
The difference is that no static portfolio replicates an option. A call's sensitivity to the underlying changes as the underlying moves, from nearly zero when far out of the money to nearly one when deep in. Any fixed holding is wrong almost immediately.
The insight is to allow the portfolio to be rebalanced. Hold some quantity of the underlying, funded partly by borrowing, and adjust that quantity continuously as the price moves. If the adjustments can be chosen so the portfolio's value matches the option's in every scenario, then the two are the same instrument, and the option must cost what the strategy costs.
Fischer Black and Myron Scholes published this in "The Pricing of Options and Corporate Liabilities", Journal of Political Economy, volume 81, issue 3, 1973, pages 637 to 654. Robert Merton developed the argument in parallel in "Theory of Rational Option Pricing", Bell Journal of Economics and Management Science, volume 4, 1973, pages 141 to 183.

