Term structure of interest rates is crucial for pricing bonds and managing financial risks. The yield curve of zero-coupon bonds can typically be used to measure the term structure of interest rates. In this paper, we use the popular Nelson-Siegel three-factor framework to model the entire Canadian yield curve. The empirical results show that the model fits the Canadian yield curve well. We estimate vector autoregressive models for the three factors in order to produce out-of-sample forecasts, and also employ seven natural competitors for comparison. Our forecast results are encouraging. Our model is superior to most competitors, especially at longer horizons. We further incorporate macro variables into the yield-only model. From the results of forecast comparison test between the yield-only model and yield-macro model, we conclude that a joint dynamic term structure model incorporating macro variables contributes to sharpening our ability of forecasting yields accurately out of sample.