Having a bijection between two sets is equivalent to the sets having the same "size". (In the case of infinite sets, the situation might be considered a little less "obvious"; but it is the generally agreed upon notion.
Cantor is probably the biggest name that should be mentioned. Without this notion, we wouldn't have his "infinite paradise"...)
For finite sets, the situation is somewhat simpler. If the domain and range have the same size (cardinality), then an injective map is bijective. Similarly, a surjective map is bijective (as you observe;
actually, you forgot to specify that the sets must be finite).
For infinite sets, on the other hand, an injective map is still a bijection (onto its image). But we can have injections and surjections which aren't bijections (between infinite sets of the same cardinality). In fact, an infinite set can be characterized as a set which is in bijective correspondence with a proper subset of itself... You can use the familiar $\tan$ function (in the case of the reals), or map any interval to any other, bijectively; or more generally, a shift function ($x\to x+k$), etc... to do this sort of thing.
However, as to your question, not every function between two sets of the same "size" is a bijection, trivially. Not just in the infinite case, but also in the finite. That is, for instance, send all the elements in the domain to the same element of the range (for any set with more than $1$ element).