Something happens because clause A, and clause B.

Short answer: yes, one "because" can introduce a list of reasons; no, your sentence does not say what you want to say because the comma separates "his bicycle was broken" from the list of reasons for John's lateness. The comma turns "his bicycle was broken" into an independent clause.

Long answer:

John came late because he woke up late and his bicycle was broken.

without a comma is parsed like this:

John came late because {{he woke up late} and {his bicycle was broken}}.

which means:

John came late for the following two reasons. (1) He woke up late. (2) His bicycle was broken.

But with a comma:

John came late because he woke up late, and his bicycle was broken.

it is parsed like this:

{John came late because {he woke up late}}, and his bicycle was broken.

which means:

John came in late because he woke up late. John's bicycle was broken.


May I suggest changing it to this (removing the Oxford/serial comma):

John came late because he woke up late and his bicycle was broken.

Removing the comma gives a flow that is less of a list and more of an overarching reason in combination.

Speaking of combination, you could change it to:

John came late because he woke up late in combination with his bicycle being broken,(right of this comma, extend your list/reasons to greater than two, or simply add a period/full stop)