Given

    line1 = {p1, p2}; line2 = {p3, p4};

you could define two points on these lines: 

    l1 = {1 - u1, u1}.line1;
    l2 = {1 - u2, u2}.line2;

and just solve for the intersection:    

    l1 /. Solve[l1 == l2, {u1, u2}]