In this paper we introduce a three factor model to price commodity futures contracts. This model allows both the spot price volatility and convenience yield to be stochastic, nevertheless futures prices can be obtained conveniently in closed form. Further, we use Brent crude oil futures prices to calibrate the model using the extended Kalman filter. In comparison to the benchmark model for commodity futures pricing, the Schwartz two-factor model, our three factor model shows a superior fit for contracts that have longer maturities. We further assess risk premia in Brent crude oil through the two models and observe that the Schwartz two-factor model over-predicts risk premia in comparison to the new model.