We study the problem of oblivious polynomial evaluation (OPE). There are two parties, Alice who has a polynomial P, and Bob who has an input x. The goal is for Bob to compute P ( x ) in such a way that Alice learns nothing about x and Bob learns only what can be inferred from P ( x ) . Previously existing protocols were based on some newly-invented intractability assumptions that have not been well studied, so one may have doubts about the security of these protocols. In this paper, we propose OPE protocols which are only based on the standard primitive oblivious transfer, and still our protocols are more efficient in several natural cases. Our protocols can also be easily modified to handle multi-variate polynomials and polynomials over floating-point numbers. As an application, we study the problem of oblivious neural learning, where one party has a neural network and the other, with some training set, wants to train the neural network in an oblivious way. We provide a protocol for this problem, which is based on our protocol for OPE.