A paper that may help is
Murdock, D, Tsai, Y, and Adcock, J (2008) P-Values are Random
Variables. The American Statistician. (62) 242-245.
Imagine that you have a coin that you want to test if it is fair (maybe it is bent or otherwise distorted) and plan to flip the coin 10 times as your test. Clearly if you see 5 heads and 5 tails then you can't reject the null that it is fair and most people would be highly suspicious of the coin if you saw 10 heads (or 10 tails), but to be fair we should set up before the test a rule or rejection region to determine if we should reject the null hypothesis (fair coin) or not.
One approach to deciding on the rejection region is to set a limit on the type I error rate and choose the rejection region such that the most extreem values whose cumulative probabilities are less than the limit will constitute the rejection region. So if we use the traditional 0.05 as our cut-off then we can start with the extreems and see that if the coin is fair (null is true) then the probability of seeing 0, 1, 9, or 10 heads is less than 5%, but if we add in 2 or 8 heads then the combined probability goes above 5%, so we will reject the null if we see 0, 1, 9, or 10 heads and fail to reject otherwise.
A side note is that we could create a rejection region of reject if see 8 heads, don't reject otherwise and that would keep the probability of rejecting when the null is true under 5%, but it seems kind of silly to say we will reject fairness if we see 8 heads, but will not reject fairness if we see 9 or 10 heads. This is why the usual definitions of p-value include a phrase like "or more extreem".
So for our test we have our alpha ($\alpha$) level set at 5%, but the actual probability of a type I error (null true as part of the definition) is a little above 2% (the probability of a fair coin showing 0, 1, 9, or 10 heads in 10 flips).
Instead of comparing the actual number of heads to our rejection region, we can instead calculate the probability of what we observe (or more extreem) given the null is true and compare that probability to $\alpha = 0.05$. That probability is the p-value. So 0 or 10 heads would result in a p-value of $\frac{2}{1024}$ (one for 0, one for 10). 1 or 9 heads would give a p-value of $\frac{22}{1024}$ (one way to see 0, one way to see 10, 10 ways to see 1 and 10 ways to see 9). If we see 2 or 8 heads then the p-value is greater than 10%.
So to summarize: The probability of a Type I error is a property of the chosen cut-off $\alpha$ and the nature of the test (in cases like the t-test when all the assumptions hold, the probability of a type I error will be exactly equal to $\alpha$). The p-value is a random variable computed from the actual observed data that can be compared to $\alpha$ as one way of performing the test).