A fast numerical algorithm is developed to price European options with proportional transaction costs using the utility-maximization framework of Davis (1997). This approach allows option prices to be computed by solving the investor’s basic portfolio selection problem without insertion of the option payoff into the terminal value function. The properties of the value function can then be used to drastically reduce the number of operations needed to locate the boundaries of the no-transaction region, which leads to very efficient option valuation. The optimization problem is solved numerically for the case of exponential utility, and comparisons with approximately replicating strategies reveal tight bounds for option prices even as transaction costs become large. The computational technique involves a discrete-time Markov chain approximation to a continuous-time singular stochastic optimal control problem. A general definition of an option hedging strategy in this framework is developed. This involves calculating the perturbation to the optimal portfolio strategy when an option trade is executed.