When estimating the average causal effect in observational studies, researchers have to tackle both self-selection of treatment and outcome modeling. This is difficult since usually there are a large number of covariates that affect people's treatment decision and the true functional form in the model is not known. Propensity score is a popular approach for dimension reduction in causal inference. We propose a new semiparametric estimation strategy using B-spline based on the propensity score, which does not rely on parametric model specification. We further improve the efficiency of the estimator by addressing the error heteroscedasticity. We also establish the asymptotic properties of both estimators. The simulation studies show that our methods compare favorably with many competing estimators. Our methods are advantageous over weighting estimators as it is not affected by extreme weights. We apply the proposed methods to data from the Ohio Medicaid Assessment Survey (OMAS) 2012, estimating the effect of having health insurance on self-reported health status for a population with subsidized insurance plan choices under the Affordable Care Act.