Since every polynomial of degree n has n roots, by the factor theorem it can be written (x-b)(x-a)... where a, b are roots of P(x)=0. So P(x) can be factored. What am I missing?


I don't know what you are missing because everything you say is true- by the "fundamental theorem of algebra", as abhishekkgp says. Why do you have a problem with that?
.
To factor, first solve it using the quadratic formula:
so
Of course, saying something can be done doesn't mean it will be easy! The quadratic formula fairly easily gives solutions to quadratic equations and so factors for quadratic polynomials. There are harder formulas for solutions to cubic and quartic polynomial equations. But there are polynomial equations of degree 5 and higher whose solutions cannot be written in terms of radicals and so while such polynomials can be factored, those factors cannot be written in any easy way.


Irreducible over what field? It is the same concept once you make that clear. The "fundamental theorem of algebra" says that there are no polynomials, with complex coefficients, that are irreducible over the complex numbers. But normally, when we talk about "irreducible polynomials" we are talking about "irreducible over the rational numbers" or some extension field. The polynomialis irreducible over the real numbers but not over the complex numbers. The polynomial
is irreducible over the rational numbers but not over the real numbers or over the field
, the rationals extended by
.