They are not same at all.
We can differentiate them with respect to their work and with respect to layer functionality. I will just list out the important points and its importance.
Flow Control:
1> It a end to end or point to point control flow (End Transmitter and End Receiver )
2> So if transmitter end sends data with high speed and receiver is unable to take then Receiver can tell sender directly to slow down.
3> It's easy to detect as it happens with the End sender and End Receiver.
4> How to control :-
i> Sliding window protocol (the sliding parameter time we can control)
ii> Stop and wait protocol
iii>Receiver can tell the window size it supports so tyhat sender will send data according to that.
5> Data link layer takes care about it.
Congestion control:
1> It between node to node (e.g one router to next router)
2> Consider a situation about line (whole way in which packet will traverse) is speed but in between 2 router is there in which one is slower and other router is faster, so the the receiving router will face problem.
3> It's hard to detect as it will happens in the middle of an network.
4> How to control :-
i > Send probe packets periodically asking about congestion.
ii> How the network has been designed
iii> QoS Parameter need to be considered (As router should support this )
5> Transport layer/Network Layer takes care about it.
Hope it concludes that both are not same.